Update main.py
Browse files
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
|
|
|
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 |
-
|
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 |
-
|
96 |
-
|
|
|
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()
|