Spaces:
Running
Running
File size: 2,384 Bytes
a786c9d d16d3b3 cd3861d a786c9d ee4b751 a786c9d dfd696d a786c9d 8837a99 a786c9d 3f51add a786c9d 7c89955 7b09166 7c89955 7df1bda 4c6d55a 1f23827 983182b dfd696d 7c89955 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
import pandas as pd
df = pd.read_csv('./medical_data.csv')
context_data = []
for i in range(len(df)):
context = ""
for j in range(3):
context += df.columns[j]
context += ": "
context += df.iloc[i][j]
context += " "
context_data.append(context)
import os
# Get the secret key from the environment
groq_key = os.environ.get('groq_api_keys')
## LLM used for RAG
from langchain_groq import ChatGroq
llm = ChatGroq(model="llama-3.1-70b-versatile",api_key=groq_key)
## Embedding model!
from langchain_huggingface import HuggingFaceEmbeddings
embed_model = HuggingFaceEmbeddings(model_name="mixedbread-ai/mxbai-embed-large-v1")
# create vector store!
from langchain_chroma import Chroma
vectorstore = Chroma(
collection_name="medical_dataset_store",
embedding_function=embed_model,
)
# add data to vector nstore
vectorstore.add_texts(context_data)
retriever = vectorstore.as_retriever()
from langchain_core.prompts import PromptTemplate
template = ("""tu eres un experto en mecanica automotriz, puedes hablar de mas cosas, cuando te pregunten por algo relacionado a los vehiculos o motores
debes responder pidiendo la marva y modelo de auto, luego pediras la fecha, y pediras que te digan los sintomas, tu les daras soluciones.
Context: {context}
Question: {question}
Answer:""")
rag_prompt = PromptTemplate.from_template(template)
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| rag_prompt
| llm
| StrOutputParser()
)
import gradio as gr
def rag_memory_stream(message, history):
partial_text = ""
for new_text in rag_chain.stream(message):
partial_text += new_text
yield partial_text
examples = [
"I feel dizzy",
"what is the possible sickness for fatigue?"
]
description = "Real-time AI App with Groq API and LangChain to Answer medical questions"
title = "Medical Expert :) Try me!"
demo = gr.ChatInterface(fn=rag_memory_stream,
type="messages",
title=title,
description=description,
fill_height=True,
examples=examples,
theme="glass",
)
if __name__ == "__main__":
demo.launch()
|