Spaces:
Runtime error
Runtime error
import os | |
import pandas as pd | |
import gradio as gr | |
from langchain.document_loaders import CSVLoader | |
from langchain.vectorstores import FAISS | |
from langchain.embeddings import HuggingFaceEmbeddings | |
from langchain.chains import RetrievalQA | |
from langchain_groq import ChatGroq | |
api_key = os.environ.get("GROQ_API_KEY") | |
if not api_key: | |
raise ValueError("Api key not found") | |
os.environ["GROQ_API_KEY"] = api_key | |
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") | |
llm = ChatGroq( | |
model="mixtral-8x7b-32768", | |
temperature=0, | |
max_tokens=None, | |
timeout=None, | |
max_retries=2 | |
) | |
# function to process query and CSV | |
def process_query(file, query): | |
try: | |
loader = CSVLoader(file_path=file.name) | |
documents = loader.load() | |
# FAISS vector store | |
vector_store = FAISS.from_documents(documents, embeddings) | |
retriever = vector_store.as_retriever() | |
qa_chain = RetrievalQA.from_chain_type( #RetrievalQA pipeline | |
llm=llm, | |
retriever=retriever, | |
return_source_documents=True | |
) | |
# Get the response | |
response = qa_chain({"query": query}) | |
result = response["result"] | |
sources = "\n".join([doc.page_content for doc in response["source_documents"]]) | |
return result, sources | |
except Exception as e: | |
return f"An error occurred: {str(e)}", "" | |
# Gradio interface | |
interface = gr.Interface( | |
fn=process_query, | |
inputs=[ | |
gr.File(label="Upload CSV File"), | |
gr.Textbox(label="Enter your query") | |
], | |
outputs=[ | |
gr.Textbox(label="Answer"), | |
gr.Textbox(label="Source Documents") # | |
], | |
title="DataScope.ai", | |
description="Upload & Unlock Insights from Your Data – Ask, Query, Discover!" | |
) | |
interface.launch(share=True) | |