Update main.py
Browse files
main.py
CHANGED
@@ -15,13 +15,30 @@ 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
|
19 |
from pandasai import SmartDataframe
|
20 |
import chainlit as cl
|
21 |
from chainlit.input_widget import TextInput, Select, Switch, Slider
|
22 |
|
23 |
from deep_translator import GoogleTranslator
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
@cl.step(type="tool")
|
26 |
async def LLMistral():
|
27 |
os.environ['HUGGINGFACEHUB_API_TOKEN'] = os.environ['HUGGINGFACEHUB_API_TOKEN']
|
@@ -33,9 +50,15 @@ async def LLMistral():
|
|
33 |
|
34 |
@cl.step(type="tool")
|
35 |
async def LLM():
|
36 |
-
os.environ['
|
37 |
-
llm =
|
38 |
return llm
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
@cl.set_chat_profiles
|
41 |
async def chat_profile():
|
@@ -56,9 +79,8 @@ async def set_starters():
|
|
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 |
-
df =
|
62 |
msg = cl.Message(content="")
|
63 |
res = df.chat(message.content)
|
64 |
#cb = cl.AsyncLangchainCallbackHandler()
|
|
|
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 |
|
23 |
from deep_translator import GoogleTranslator
|
24 |
|
25 |
+
@cl.password_auth_callback
|
26 |
+
def auth_callback(username: str, password: str):
|
27 |
+
auth = json.loads(os.environ['CHAINLIT_AUTH_LOGIN'])
|
28 |
+
ident = next(d['ident'] for d in auth if d['ident'] == username)
|
29 |
+
pwd = next(d['pwd'] for d in auth if d['ident'] == username)
|
30 |
+
resultLogAdmin = bcrypt.checkpw(username.encode('utf-8'), bcrypt.hashpw(ident.encode('utf-8'), bcrypt.gensalt()))
|
31 |
+
resultPwdAdmin = bcrypt.checkpw(password.encode('utf-8'), bcrypt.hashpw(pwd.encode('utf-8'), bcrypt.gensalt()))
|
32 |
+
resultRole = next(d['role'] for d in auth if d['ident'] == username)
|
33 |
+
if resultLogAdmin and resultPwdAdmin and resultRole == "admindatapcc":
|
34 |
+
return cl.User(
|
35 |
+
identifier=ident + " : 🧑💼 Admin Datapcc", metadata={"role": "admin", "provider": "credentials"}
|
36 |
+
)
|
37 |
+
elif resultLogAdmin and resultPwdAdmin and resultRole == "userdatapcc":
|
38 |
+
return cl.User(
|
39 |
+
identifier=ident + " : 🧑🎓 User Datapcc", metadata={"role": "user", "provider": "credentials"}
|
40 |
+
)
|
41 |
+
|
42 |
@cl.step(type="tool")
|
43 |
async def LLMistral():
|
44 |
os.environ['HUGGINGFACEHUB_API_TOKEN'] = os.environ['HUGGINGFACEHUB_API_TOKEN']
|
|
|
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():
|
|
|
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()
|