Spaces:
Runtime error
Runtime error
| from langchain_groq import ChatGroq | |
| from langchain.prompts import PromptTemplate | |
| from langchain.chains import LLMChain | |
| from langchain.prompts import PromptTemplate | |
| from langchain.callbacks.manager import CallbackManager | |
| from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler | |
| from langchain.agents import Tool | |
| from langchain_experimental.utilities import PythonREPL # type: ignore | |
| from langchain_community.chat_models import ChatOllama | |
| import autopep8 # type: ignore | |
| import pandas as pd | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| groq_api_key = os.getenv("GROQ_API_KEY") | |
| class datachat(): | |
| def __init__(self,file_path): | |
| callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]) | |
| self.llm = ChatGroq(temperature=0, model_name="mixtral-8x7b-32768",callback_manager=callback_manager) | |
| self.instruction = """ | |
| As a python coder create a pythonic response for the query with reference to the columns in my pandas dataframe{columns}. | |
| Instruction: | |
| Do not write the whole script just give me a pythonic response for this query and do not extend more than asked. Assume a dataframe variable df_temp. | |
| Enclose the generated code in Markdown code embedding format. Do not generate sample output. Answer the question and provide a one-line explanation and stop. | |
| example: | |
| ```python | |
| output = df['region'].unique() | |
| ``` | |
| question: {input} | |
| answer: | |
| """ | |
| self.file_path=file_path | |
| def extract_code(self,response): | |
| start = 0 | |
| q = "" | |
| temp_block="" | |
| for line in response.splitlines(): | |
| if '```python' in line and start==0: | |
| start=1 | |
| if '```' == line.strip() and start==1: | |
| start =0 | |
| break | |
| if start ==1 and '```' not in line: | |
| q=q+'\n'+line | |
| return q | |
| def data_ops(self,query): | |
| if os.path.isfile('./output.csv'): | |
| df=pd.read_csv('./output.csv') | |
| else: | |
| df=pd.read_csv(self.file_path) | |
| query = query | |
| columns=df.columns.tolist() | |
| prompt = PromptTemplate.from_template(self.instruction) | |
| agent = LLMChain(llm=self.llm,prompt=prompt) | |
| response = agent.invoke(input={"columns":columns,"input":query}) | |
| response = self.extract_code(response['text']) | |
| gencode=autopep8.fix_code(response) | |
| df_temp=df | |
| exec(gencode) | |
| df_temp.to_csv('./output.csv',index=False) | |
| return df_temp | |