Spaces:
Build error
Build error
import chainlit as cl | |
from langchain.prompts import ChatPromptTemplate | |
from langchain.schema import StrOutputParser | |
from langchain.schema.runnable import Runnable | |
from langchain.schema.runnable.config import RunnableConfig | |
from react_agent_v2 import get_react_agent | |
from langchain.memory import ConversationBufferMemory | |
from langchain_community.chat_message_histories import ChatMessageHistory | |
from langchain_core.chat_history import BaseChatMessageHistory | |
from langchain_core.runnables.history import RunnableWithMessageHistory | |
async def on_chat_start(): | |
message_history = ChatMessageHistory() | |
memory = ConversationBufferMemory( | |
memory_key = "chat_history", | |
output_key = "output", | |
chat_memory = message_history, | |
return_message = True | |
) | |
agent_executor = get_react_agent(memory) | |
cl.user_session.set("runnable", agent_executor) | |
async def on_message(message: cl.Message): | |
# runnable = cl.user_session.get("runnable") # type: Runnable | |
# | |
# msg = cl.Message(content="") | |
# | |
# for chunk in await cl.make_async(runnable.stream)( | |
# {"input": message.content}, | |
# config=RunnableConfig(callbacks=[cl.LangchainCallbackHandler()]), | |
# ): | |
# await msg.stream_token(chunk) | |
# | |
# await msg.send() | |
# | |
# # Get user input from the message | |
# user_input = message.content | |
# | |
# # Run the agent with user input and get the response | |
# response = await cl.make_async(agent_executor)(user_input) | |
# | |
# # Display the response to the user | |
# cl.message(response) | |
llm_chain = cl.user_session.get("runnable") | |
response = await llm_chain.ainvoke( | |
{"input": message.content}, callbacks = [cl.AsyncLangchainCallbackHandler()] | |
) | |
await cl.Message(response["output"].replace("`", "")).send() | |