datacipen commited on
Commit
28c5330
1 Parent(s): f2e9636

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +22 -25
main.py CHANGED
@@ -8,15 +8,12 @@ from pathlib import Path
8
  from langchain_huggingface import HuggingFaceEndpoint
9
  from langchain.schema.runnable.config import RunnableConfig
10
  from langchain.schema import StrOutputParser
11
- from langchain_anthropic import AnthropicLLM, ChatAnthropic
12
  from langchain_core.prompts import ChatPromptTemplate
13
 
14
  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.llm import OpenAI
19
- from pandasai import SmartDataframe
20
  import chainlit as cl
21
  from chainlit.input_widget import TextInput, Select, Switch, Slider
22
 
@@ -48,18 +45,6 @@ async def LLMistral():
48
  )
49
  return llm
50
 
51
- @cl.step(type="tool")
52
- async def LLM():
53
- os.environ['OPENAI_API_KEY'] = os.environ['OPENAI_API_KEY']
54
- llm = OpenAI(model="gpt-4o-2024-05-13")
55
- return llm
56
-
57
- @cl.step(type="tool")
58
- async def File():
59
- llm = await LLM()
60
- df = SmartDataframe("./public/ExpeCFA_LP_CAA.csv", config={"llm": llm})
61
- return df
62
-
63
  @cl.set_chat_profiles
64
  async def chat_profile():
65
  return [
@@ -79,13 +64,25 @@ async def set_starters():
79
  @cl.on_message
80
  async def on_message(message: cl.Message):
81
  await cl.Message(f"> SURVEYIA").send()
82
-
83
- df = await File()
84
- msg = cl.Message(content="")
85
- res = df.chat(message.content)
86
- #cb = cl.AsyncLangchainCallbackHandler()
87
- #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])
88
- #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.")
89
- #answer = res['output']
90
- #print(res)
91
- await cl.Message(content=GoogleTranslator(source='auto', target='fr').translate(res)).send()
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  from langchain_huggingface import HuggingFaceEndpoint
9
  from langchain.schema.runnable.config import RunnableConfig
10
  from langchain.schema import StrOutputParser
 
11
  from langchain_core.prompts import ChatPromptTemplate
12
 
13
  from langchain.agents import AgentExecutor
14
  from langchain.agents.agent_types import AgentType
15
  from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent, create_csv_agent
16
 
 
 
17
  import chainlit as cl
18
  from chainlit.input_widget import TextInput, Select, Switch, Slider
19
 
 
45
  )
46
  return llm
47
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  @cl.set_chat_profiles
49
  async def chat_profile():
50
  return [
 
64
  @cl.on_message
65
  async def on_message(message: cl.Message):
66
  await cl.Message(f"> SURVEYIA").send()
67
+ llm = await LLMistral()
68
+ agent = create_csv_agent(
69
+ llm,
70
+ "./public/ExpeCFA_LP_CAA.csv",
71
+ verbose=True,
72
+ agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION
73
+ )
74
+ cb = cl.AsyncLangchainCallbackHandler()
75
+ try:
76
+ 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])
77
+ await cl.Message(author="COPILOT",content=GoogleTranslator(source='auto', target='fr').translate(res['output'])).send()
78
+ except ValueError as e:
79
+ res = str(e)
80
+ resArray = res.split(":")
81
+ ans = ''
82
+ if str(res).find('parsing') != -1:
83
+ for i in range(2,len(resArray)):
84
+ ans += resArray[i]
85
+ await cl.Message(author="COPILOT",content=ans.replace("`","")).send()
86
+ else:
87
+ await cl.Message(author="COPILOT",content="Reformulez votre requête, s'il vous plait 😃").send()
88
+