Update main.py
Browse files
main.py
CHANGED
@@ -12,7 +12,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
|
@@ -45,13 +49,13 @@ def auth_callback(username: str, password: str):
|
|
45 |
@cl.step(type="run")
|
46 |
def create_agent(filename: str):
|
47 |
"""
|
48 |
-
|
49 |
|
50 |
Args:
|
51 |
-
filename:
|
52 |
|
53 |
Returns:
|
54 |
-
|
55 |
"""
|
56 |
|
57 |
# Create an OpenAI object.
|
@@ -60,9 +64,13 @@ def create_agent(filename: str):
|
|
60 |
#llm = OpenAI(temperature=0, model_name="gpt-4")
|
61 |
# Read the CSV file into a Pandas DataFrame.
|
62 |
df = pd.read_csv(filename)
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
66 |
|
67 |
def query_agent(agent, query):
|
68 |
"""
|
@@ -182,7 +190,8 @@ async def on_message(message: cl.Message):
|
|
182 |
cb = cl.AsyncLangchainCallbackHandler()
|
183 |
try:
|
184 |
#res = await agent.acall("Réponds en langue française à la question suivante : " + message.content, callbacks=[cb])
|
185 |
-
res = await agent.ainvoke("Réponds de la manière la plus complète et la plus intelligible, en langue française, à la question suivante : " + message.content + ". Réponds au format markdown ou au format tableau si le résultat nécessite l'affichage d'un tableau.")
|
|
|
186 |
await cl.Message(author="COPILOT",content=GoogleTranslator(source='auto', target='fr').translate(res['output'])).send()
|
187 |
except ValueError as e:
|
188 |
res = str(e)
|
|
|
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 |
+
from langchain_community.agent_toolkits import create_sql_agent
|
17 |
+
|
18 |
+
from langchain_community.utilities import SQLDatabase
|
19 |
+
from sqlalchemy import create_engine
|
20 |
|
21 |
import chainlit as cl
|
22 |
from chainlit.input_widget import TextInput, Select, Switch, Slider
|
|
|
49 |
@cl.step(type="run")
|
50 |
def create_agent(filename: str):
|
51 |
"""
|
52 |
+
Créer un agent qui permet l'accès et l'usage d'un large language model (LLM).
|
53 |
|
54 |
Args:
|
55 |
+
filename: le chemin du fichier CSV qui contient les datas.
|
56 |
|
57 |
Returns:
|
58 |
+
Un agent qui peut accéder et utiliser le LLM.
|
59 |
"""
|
60 |
|
61 |
# Create an OpenAI object.
|
|
|
64 |
#llm = OpenAI(temperature=0, model_name="gpt-4")
|
65 |
# Read the CSV file into a Pandas DataFrame.
|
66 |
df = pd.read_csv(filename)
|
67 |
+
engine = create_engine("sqlite:///sphinx.db")
|
68 |
+
df.to_sql("sphinx", engine, index=False)
|
69 |
+
db = SQLDatabase(engine=engine)
|
70 |
+
# Create a SAL agent.
|
71 |
+
#e.g agent_executor.invoke({"input": "Quel est le nombre de chargé d'affaires en agencement par entreprise?"})
|
72 |
+
#return create_pandas_dataframe_agent(llm, df, verbose=False, allow_dangerous_code=True, handle_parsing_errors=True, agent_type=AgentType.OPENAI_FUNCTIONS)
|
73 |
+
return create_sql_agent(llm, db=db, agent_type="openai-tools", verbose=False)
|
74 |
|
75 |
def query_agent(agent, query):
|
76 |
"""
|
|
|
190 |
cb = cl.AsyncLangchainCallbackHandler()
|
191 |
try:
|
192 |
#res = await agent.acall("Réponds en langue française à la question suivante : " + message.content, callbacks=[cb])
|
193 |
+
res = await agent.ainvoke({"input": "Réponds de la manière la plus complète et la plus intelligible, en langue française, à la question suivante : " + message.content + ". Réponds au format markdown ou au format tableau si le résultat nécessite l'affichage d'un tableau."})
|
194 |
+
#res = await agent.ainvoke("Réponds de la manière la plus complète et la plus intelligible, en langue française, à la question suivante : " + message.content + ". Réponds au format markdown ou au format tableau si le résultat nécessite l'affichage d'un tableau.")
|
195 |
await cl.Message(author="COPILOT",content=GoogleTranslator(source='auto', target='fr').translate(res['output'])).send()
|
196 |
except ValueError as e:
|
197 |
res = str(e)
|