datacipen commited on
Commit
7e57685
·
verified ·
1 Parent(s): fc0fd78

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +9 -33
main.py CHANGED
@@ -15,7 +15,8 @@ from langchain.agents import AgentExecutor
15
  from langchain.agents.agent_types import AgentType
16
  from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent, create_csv_agent
17
 
18
- from pandasai import PandasAI
 
19
  import chainlit as cl
20
  from chainlit.input_widget import TextInput, Select, Switch, Slider
21
 
@@ -55,42 +56,17 @@ async def set_starters():
55
  @cl.on_message
56
  async def on_message(message: cl.Message):
57
  await cl.Message(f"> SURVEYIA").send()
58
- model = await LLMistral()
59
 
60
- df = pd.read_csv("./public/ExpeCFA_LP_CAA.csv")
61
-
62
- pandas_ai = PandasAI(model, enable_cache=False)
63
- prompt = ChatPromptTemplate.from_messages(
64
- [
65
- (
66
- "system",
67
- "Answer the users question about some data. A data scientist will run some code and the results will be returned to you to use in your answer",
68
- ),
69
- ("human", "Question: {input}"),
70
- ("human", "Data Scientist Result: {result}"),
71
- ]
72
- )
73
-
74
- chain = (
75
- {
76
- "input": lambda x: x["input_question"],
77
- "result": lambda x: pandas_ai(df, prompt=x["input_question"]),
78
- }
79
- | prompt
80
- | model
81
- | StrOutputParser()
82
  )
83
-
84
  msg = cl.Message(content="")
85
-
86
- async for chunk in chain.astream({"input_question": message.content},
87
- config=RunnableConfig(callbacks=[cl.AsyncLangchainCallbackHandler(stream_final_answer=True)])):
88
- await msg.stream_token(chunk)
89
-
90
-
91
  #cb = cl.AsyncLangchainCallbackHandler()
92
  #res = await agent.acall("Réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète en 2000 mots minimum.", callbacks=[cb])
93
  #res = await agent.ainvoke("D'après les informations fournies, réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète jusqu'à 2000 mots, si cela est nécessaire.")
94
  #answer = res['output']
95
- #print(res)
96
- #await cl.Message(content=GoogleTranslator(source='auto', target='fr').translate(answer)).send()
 
15
  from langchain.agents.agent_types import AgentType
16
  from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent, create_csv_agent
17
 
18
+ from pandasai.llm import HuggingFaceTextGen
19
+ from pandasai import SmartDataframe
20
  import chainlit as cl
21
  from chainlit.input_widget import TextInput, Select, Switch, Slider
22
 
 
56
  @cl.on_message
57
  async def on_message(message: cl.Message):
58
  await cl.Message(f"> SURVEYIA").send()
59
+ #model = await LLMistral()
60
 
61
+ llm = HuggingFaceTextGen(
62
+ inference_server_url="https://api-inference.huggingface.co/models/mistralai/Mixtral-8x22B-Instruct-v0.1"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  )
64
+ df = SmartDataframe("./public/ExpeCFA_LP_CAA.csv", config={"llm": llm})
65
  msg = cl.Message(content="")
66
+ res = df.chat(message.content)
 
 
 
 
 
67
  #cb = cl.AsyncLangchainCallbackHandler()
68
  #res = await agent.acall("Réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète en 2000 mots minimum.", callbacks=[cb])
69
  #res = await agent.ainvoke("D'après les informations fournies, réponds en langue française à la question suivante :\n" + message.content + "\nDétaille la réponse en faisant une analyse complète jusqu'à 2000 mots, si cela est nécessaire.")
70
  #answer = res['output']
71
+ print(res)
72
+ await cl.Message(content=GoogleTranslator(source='auto', target='fr').translate(res)).send()