Construindo chatbot que responde a perguntas médicas usando o biomriamento aberto do biomtral LLM, Langchain, armazenamento de térmicas e rag: guia de etapa para ação
Inteligência artificial

Construindo chatbot que responde a perguntas médicas usando o biomriamento aberto do biomtral LLM, Langchain, armazenamento de térmicas e rag: guia de etapa para ação


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



Source link

Você também pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *