Skip to content

Commit

Permalink
base_chat chat resume fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ilkersigirci committed Jan 29, 2025
1 parent 6ba9037 commit 74107ec
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions src/podflix/gui/base_chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import chainlit as cl
from chainlit.types import ThreadDict
from langchain_community.chat_message_histories import ChatMessageHistory
from langchain_core.messages.utils import convert_to_openai_messages
from literalai.helper import utc_now
from loguru import logger # noqa: F401
from openai import AsyncOpenAI
Expand Down Expand Up @@ -62,30 +63,27 @@ async def settings_update(settings: cl.ChatSettings) -> None:

@cl.on_chat_start
async def on_chat_start() -> None:
message_history = [
{
"role": "system",
"content": "You are a helpful assistant. Respond to user messages using markdown.",
}
]

set_extra_user_session_params(message_history=message_history)
set_extra_user_session_params()

chat_settings = get_openai_chat_settings()
cl.user_session.set("settings", OpenAIChatGenerationSettings())

await chat_settings.send()


# TODO: Get dict message history from db
@cl.on_chat_resume
def setup_chat_resume(thread: ThreadDict) -> None:
async def setup_chat_resume(thread: ThreadDict) -> None:
message_history = create_message_history_from_db_thread(thread=thread)

set_extra_user_session_params(
user_id=thread["userIdentifier"], message_history=message_history
)

chat_settings = get_openai_chat_settings()
cl.user_session.set("settings", OpenAIChatGenerationSettings())

await chat_settings.send()


async def stream_tokens(
stream: AsyncIterator[ChatCompletionChunk], assistant_message: cl.Message
Expand Down Expand Up @@ -131,7 +129,7 @@ async def on_message(msg: cl.Message) -> None:
message_history: ChatMessageHistory = cl.user_session.get("message_history")
settings: OpenAIChatGenerationSettings = cl.user_session.get("settings")

message_history.append({"role": "user", "content": msg.content})
message_history.add_user_message(msg.content)

assistant_message = cl.Message(
content="",
Expand All @@ -140,8 +138,19 @@ async def on_message(msg: cl.Message) -> None:
created_at=utc_now(),
)

system_message = [
{
"role": "system",
"content": "You are a helpful assistant called Ilkerflix. Respond to user messages using markdown.",
}
]

messages_openai = system_message + convert_to_openai_messages(
message_history.messages
)

stream = await async_openai_client.chat.completions.create(
messages=message_history,
messages=messages_openai,
stream=True,
response_format={"type": settings.response_format},
**settings.model_dump(exclude={"response_format"}),
Expand All @@ -159,5 +168,5 @@ async def on_message(msg: cl.Message) -> None:
else:
await stream_tokens(stream=stream, assistant_message=assistant_message)

message_history.append({"role": "assistant", "content": assistant_message.content})
message_history.add_ai_message(assistant_message.content)
await assistant_message.send()

0 comments on commit 74107ec

Please sign in to comment.