Nesta lição, construiremos um chatbot forte e poderoso, baseado no chatbot relacionado ao chatbot com o conteúdo relacionado à saúde. Melhoraremos as habilidades do bioming aberto das habilidades LLM e Langchain e as variáveis de dados do processamento de documentos em PDF em pedaços de texto portátil. Diremos então que esses pedaços usam assalto facial, sequestrando os relacionamentos semânticos mais profundos e os mantêm no banco de dados do Chroma Vector para obter o retorno mais alto. Por fim, através do sistema de restauração do sistema (RAG), uniremos o status restrito em nossos reparos de chatbot, confirmando as respostas claras e aprovadas dos usuários. Esse método nos permite permanecer rapidamente através de grandes volumes de PDFs médicos, fornecendo uma compreensão rica e precisa e uma compreensão precisa.
Para definir ferramentas
!pip install langchain sentence-transformers chromadb llama-cpp-python langchain_community pypdf
from langchain_community.document_loaders import PyPDFDirectoryLoader
from langchain.text_splitter import CharacterTextSplitter,RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS, Chroma
from langchain_community.llms import LlamaCpp
from langchain.chains import RetrievalQA, LLMChain
import pathlib
import textwrap
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
from google.colab import drive
drive.mount('/content/drive')
Primeiro, entramos e nos preparamos para pacotes Python, processando documentos, geração de geração, LLMs locais e viagens baseadas em desempenho. Recebemos Langchain_Community Carregando PDF e Classificação de Texto, set Retivalqa e LLMCHACHAIN para receber uma resposta de perguntas e incluir o uso de To_Markdown Uso
Para definir o acesso à chave da API
from google.colab import userdata
# Or use `os.getenv('HUGGINGFACEHUB_API_TOKEN')` to fetch an environment variable.
import os
from getpass import getpass
HF_API_KEY = userdata.get("HF_API_KEY")
os.environ["HF_API_KEY"] = "HF_API_KEY"
Aqui, podemos baixar e colocar com segurança a chave de API de abraço, como flexibilidade natural no Google Colab. Também pode haver uma variabilidade natural de HuggingFactacloblublo'p_token, evitando a divulgação direta de credenciais sensíveis em seu código.
Carregando e emitindo PDFs do indicador
loader = PyPDFDirectoryLoader('/content/drive/My Drive/Data')
docs = loader.load()
Utilizamos o PypDFDFDDDFDicToryller.
Dividindo documentos de texto incluídos em pedaços desocupados
text_splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)
chunks = text_splitter.split_documents(docs)
Nesse trecho de código, o recsusususususususususususcracracrexplotter é usado para quebrar cada documento nos documentos pequenas peças mais controladas.
Começar a amarrar o rosto do rosto
embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-base-en-v1.5")
Usando o HuggingBanteds, criamos um item que usa o modelo BAA / BGE-BA-V1.5. Converte o texto em campos numéricos.
Para criar uma loja de vetores e usar a mesma pesquisa
vectorstore = Chroma.from_documents(chunks, embeddings)
query = "who is at risk of heart disease"
search = vectorstore.similarity_search(query)
to_markdown(search[0].page_content)
Começamos a criar uma loja de vetores Chroma (Chroma.Fromom_Dwoy) a partir de troncos de Chenks e um modelo definido. Em seguida, cria uma pergunta para fazer: “Quem corre o risco de doenças cardíacas” e faça a mesma pesquisa contra as reservas. O resultado principal (pesquisas[0].page_incontent) e modifique no Markdown para exibição clara.
Criação de recuperação e download devido a documentos
retriever = vectorstore.as_retriever(
search_kwargs={'k': 5}
)
retriever.get_relevant_documents(query)
Estamos convertendo a loja de vetores do Chroma em recuperação (Vectorstore.astore.as_retetriever) bem interessada na documentação correta da pergunta fornecida.
O modelo de departamento biomstral-7b com o LlamCPP
llm = LlamaCpp(
model_path= "/content/drive/MyDrive/Model/BioMistral-7B.Q4_K_M.gguf",
temperature=0.3,
max_tokens=2048,
top_p=1)
Configuramos um biomistismo do biomistismo local aberto usando o Llamacpp, aponta para o arquivo de modelo baixado anteriormente. Também nos preparamos para as molas do calor, max_tokens e top_p, controle, tokens altos produzidos e o núcleo lampling.
Configurando o desenvolvimento para restaurar a cadeia de energia (RAG) com o Quick Commorem
from langchain.schema.runnable import RunnablePassthrough
from langchain.schema.output_parser import StrOutputParser
from langchain.prompts import ChatPromptTemplate
template = """
You are an AI assistant that follows instruction extremely well.
Please be truthful and give direct answers
{query}
"""
prompt = ChatPromptTemplate.from_template(template)
rag_chain = (
{'context': retriever, 'query': RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
Usando o acima, colocamos o tubo de pano usando o quadro Langchain. Ele cria personalização por instruções e edições locais, incluindo Retriever para contexto, e o modelo de idioma para produzir as respostas. O fluxo é definido como uma série de consultas diretas (ilegal chatpromorTemplevate for speedy Construction, LLM para resposta à geração e, finalmente, o StroutOutputParter para produzir um texto limpo.
Pedindo à cadeia de trapos para responder à pergunta relacionada à saúde
response = rag_chain.invoke("Why should I care about my heart health?")
to_markdown(response)
Agora, chamamos um pano previamente projetado. Passa a pergunta para retornar, retorna o contexto correto da coleta de documentos e alimenta o contexto no LLM para produzir um indicador curto e preciso.
Em conclusão, ao combinar um BIOMCPT com o LMAMCPP e aplicando a variabilidade Langchain, somos capazes de construir chatbot médico para o contexto. A partir de um índice baseado em chunk baseado em tubos de pano sem pano, direcionando o processo de volume mais alto dos dados do PDF para o entendimento correto. Os usuários encontram e lê respostas claras no formato das últimas respostas para o Markdown. O projeto pode ser expandido ou criado para diferentes origens, para garantir a estabilidade e a precisão das informações em diferentes documentos.
Usar Folheto no canto aqui. Além disso, não se esqueça de seguir Sane e junte -se ao nosso Estação de telégrafo incluindo LinkedIn grtópico. Não se esqueça de se juntar ao nosso 75k + ml subreddit.
🚨 Conheça o trabalho: um código aberto aberto com várias fontes para verificar o programa difícil AI (Atualizado)
O Asphazzaq é um Markteach Media Inc. De acordo com um negócio e desenvolvedor de visualização, a ASIFI está comprometida em integrar uma boa inteligência social. Sua última tentativa é lançada pelo lançamento do Plano de Química para uma Inteligência, Marktechpost, uma prática íntima devastadora de um aprendizado de máquina e problemas de aprendizado profundo que são de forma clara e facilmente compreendida. A plataforma está aderindo a mais de dois milhões de visitas à lua, indicando sua popularidade entre o público.
✅ [Recommended] Junte -se ao nosso canal de telégrafo