Spaces:
Runtime error
Runtime error
| import os | |
| from langchain.document_loaders.csv_loader import CSVLoader | |
| from langchain.text_splitter import RecursiveCharacterTextSplitter | |
| from langchain.vectorstores import Chroma | |
| from langchain.embeddings import OpenAIEmbeddings | |
| from langchain.chat_models import ChatOpenAI | |
| from langchain.schema.runnable import RunnablePassthrough | |
| from langchain.prompts import PromptTemplate | |
| from langchain import hub | |
| # from env import OPENAI_API_KEY | |
| def main(): | |
| loader = CSVLoader(file_path="output.csv") | |
| data = loader.load() | |
| text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0) | |
| splits = text_splitter.split_documents(data) | |
| vectorstore = Chroma.from_documents( | |
| documents=splits, | |
| embedding=OpenAIEmbeddings(openai_api_key=os.environ['OPENAI_API_KEY']), | |
| ) | |
| retriever = vectorstore.as_retriever() | |
| rag_prompt = hub.pull("rlm/rag-prompt") | |
| llm = ChatOpenAI( | |
| model_name="gpt-3.5-turbo", | |
| temperature=0, | |
| openai_api_key=os.environ['OPENAI_API_KEY'], | |
| ) | |
| template = """Use the following pieces of context to answer the question at the end. | |
| If you don't know the answer, just say that you don't know, don't try to make up an answer. | |
| Use three sentences maximum and keep the answer as concise as possible. | |
| {context} | |
| Question: {question} | |
| Helpful Answer:""" | |
| rag_prompt_custom = PromptTemplate.from_template(template) | |
| rag_chain = ( | |
| {"context": retriever, "question": RunnablePassthrough()} | |
| | rag_prompt_custom | |
| | llm | |
| ) | |
| return rag_chain | |
| def driver2(customer_name): | |
| rag_chain = main() | |
| response = rag_chain.invoke( | |
| "Can you tell me more about customer" | |
| + customer_name | |
| + " and how they benefited from salesforce?" | |
| ) | |
| print(response) | |
| return response.content | |