From 34eeb82554c55916e1ca305d70856612393fc533 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Thu, 23 May 2024 16:30:55 +0200 Subject: [PATCH 01/19] wip --- backend/chainlit/__init__.py | 2 - backend/chainlit/config.py | 6 +- backend/chainlit/data/__init__.py | 11 ++ backend/chainlit/data/sql_alchemy.py | 67 ++++++---- backend/chainlit/element.py | 14 +- backend/chainlit/message.py | 24 ++-- backend/chainlit/server.py | 27 +++- backend/chainlit/step.py | 8 +- backend/pyproject.toml | 2 +- cypress/e2e/avatar/.chainlit/config.toml | 62 --------- cypress/e2e/avatar/main.py | 32 ----- cypress/e2e/avatar/public/cat.jpeg | Bin 638682 -> 0 bytes cypress/e2e/avatar/spec.cy.ts | 19 --- frontend/src/App.tsx | 5 +- frontend/src/AppWrapper.tsx | 4 +- frontend/src/assets/debug.tsx | 31 +++++ frontend/src/components/Hotkeys.tsx | 11 -- .../atoms/buttons/userButton/avatar.tsx | 4 +- .../atoms/buttons/userButton/menu.tsx | 57 ++++---- .../src/components/atoms/elements/Avatar.tsx | 28 ---- .../src/components/atoms/elements/index.ts | 1 - frontend/src/components/molecules/Code.tsx | 2 +- .../components/molecules/messages/Message.tsx | 101 +++----------- .../molecules/messages/Messages.tsx | 9 +- .../molecules/messages/components/Author.tsx | 80 ----------- .../molecules/messages/components/Avatar.tsx | 30 +++++ .../messages/components/DebugButton.tsx | 31 +++++ .../messages/components/DetailsButton.tsx | 6 +- .../messages/components/MessageButtons.tsx | 22 +++- .../messages/components/MessageContent.tsx | 7 +- .../components/molecules/settingsModal.tsx | 124 ------------------ .../organisms/chat/Messages/container.tsx | 9 -- .../organisms/chat/Messages/index.tsx | 3 +- .../organisms/chat/inputBox/index.tsx | 2 +- .../sidebar/threadHistory/Thread.tsx | 1 - frontend/src/contexts/MessageContext.tsx | 1 - frontend/src/state/project.ts | 1 + frontend/src/state/settings.ts | 6 +- frontend/src/types/messageContext.ts | 4 - frontend/tests/message.spec.tsx | 2 - libs/copilot/src/chat/messages/container.tsx | 9 -- libs/copilot/src/chat/messages/index.tsx | 5 +- libs/react-client/src/state.ts | 6 - libs/react-client/src/types/element.ts | 5 - libs/react-client/src/useChatData.ts | 3 - libs/react-client/src/useChatInteract.ts | 3 - libs/react-client/src/useChatSession.ts | 20 +-- 47 files changed, 288 insertions(+), 619 deletions(-) delete mode 100644 cypress/e2e/avatar/.chainlit/config.toml delete mode 100644 cypress/e2e/avatar/main.py delete mode 100644 cypress/e2e/avatar/public/cat.jpeg delete mode 100644 cypress/e2e/avatar/spec.cy.ts create mode 100644 frontend/src/assets/debug.tsx delete mode 100644 frontend/src/components/Hotkeys.tsx delete mode 100644 frontend/src/components/atoms/elements/Avatar.tsx delete mode 100644 frontend/src/components/molecules/messages/components/Author.tsx create mode 100644 frontend/src/components/molecules/messages/components/Avatar.tsx create mode 100644 frontend/src/components/molecules/messages/components/DebugButton.tsx delete mode 100644 frontend/src/components/molecules/settingsModal.tsx diff --git a/backend/chainlit/__init__.py b/backend/chainlit/__init__.py index eca2420512..96f69cca6f 100644 --- a/backend/chainlit/__init__.py +++ b/backend/chainlit/__init__.py @@ -28,7 +28,6 @@ from chainlit.context import context from chainlit.element import ( Audio, - Avatar, File, Image, Pdf, @@ -359,7 +358,6 @@ def acall(self): "Plotly", "Image", "Text", - "Avatar", "Pyplot", "File", "Task", diff --git a/backend/chainlit/config.py b/backend/chainlit/config.py index 2f8a8caa96..0a28149a84 100644 --- a/backend/chainlit/config.py +++ b/backend/chainlit/config.py @@ -4,7 +4,7 @@ import sys from importlib import util from pathlib import Path -from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Union, Literal +from typing import TYPE_CHECKING, Any, Callable, Dict, List, Literal, Optional, Union import tomli from chainlit.logger import logger @@ -136,6 +136,7 @@ # custom_build = "./public/build" [UI.theme] + default = "dark" #layout = "wide" #font_family = "Inter, sans-serif" # Override default MUI light theme. (Check theme.ts) @@ -192,11 +193,13 @@ class PaletteOptions(DataClassJsonMixin): light: Optional[str] = "" dark: Optional[str] = "" + @dataclass() class TextOptions(DataClassJsonMixin): primary: Optional[str] = "" secondary: Optional[str] = "" + @dataclass() class Palette(DataClassJsonMixin): primary: Optional[PaletteOptions] = None @@ -208,6 +211,7 @@ class Palette(DataClassJsonMixin): @dataclass() class Theme(DataClassJsonMixin): font_family: Optional[str] = None + default: Optional[Literal["light", "dark"]] = "dark" layout: Optional[Literal["default", "wide"]] = "default" light: Optional[Palette] = None dark: Optional[Palette] = None diff --git a/backend/chainlit/data/__init__.py b/backend/chainlit/data/__init__.py index 808162d514..89e6858439 100644 --- a/backend/chainlit/data/__init__.py +++ b/backend/chainlit/data/__init__.py @@ -139,6 +139,9 @@ async def update_thread( async def delete_user_session(self, id: str) -> bool: return True + async def build_debug_url(self) -> str: + return "" + _data_layer: Optional[BaseDataLayer] = None @@ -225,6 +228,14 @@ def step_to_step_dict(self, step: LiteralStep) -> "StepDict": "waitForAnswer": metadata.get("waitForAnswer", False), } + async def build_debug_url(self) -> str: + try: + project_id = await self.client.api.get_my_project_id() + return f"{self.client.api.url}/projects/{project_id}/threads?threadId=[thread_id]¤tStepId=[step_id]" + except Exception as e: + logger.error(f"Error building debug url: {e}") + return "" + async def get_user(self, identifier: str) -> Optional[PersistedUser]: user = await self.client.api.get_user(identifier=identifier) if not user: diff --git a/backend/chainlit/data/sql_alchemy.py b/backend/chainlit/data/sql_alchemy.py index c6ccf5445c..4c3aa9865c 100644 --- a/backend/chainlit/data/sql_alchemy.py +++ b/backend/chainlit/data/sql_alchemy.py @@ -9,7 +9,7 @@ import aiohttp from chainlit.context import context from chainlit.data import BaseDataLayer, BaseStorageClient, queue_until_user_message -from chainlit.element import Avatar, ElementDict +from chainlit.element import ElementDict from chainlit.logger import logger from chainlit.step import StepDict from chainlit.types import ( @@ -57,13 +57,17 @@ def __init__( self.async_session = sessionmaker(bind=self.engine, expire_on_commit=False, class_=AsyncSession) # type: ignore if storage_provider: self.storage_provider: Optional[BaseStorageClient] = storage_provider - if self.show_logger: logger.info("SQLAlchemyDataLayer storage client initialized") + if self.show_logger: + logger.info("SQLAlchemyDataLayer storage client initialized") else: self.storage_provider = None logger.warn( "SQLAlchemyDataLayer storage client is not initialized and elements will not be persisted!" ) + async def build_debug_url(self) -> str: + return "" + ###### SQL Helpers ###### async def execute_sql( self, query: str, parameters: dict @@ -104,7 +108,8 @@ def clean_result(self, obj): ###### User ###### async def get_user(self, identifier: str) -> Optional[PersistedUser]: - if self.show_logger: logger.info(f"SQLAlchemy: get_user, identifier={identifier}") + if self.show_logger: + logger.info(f"SQLAlchemy: get_user, identifier={identifier}") query = "SELECT * FROM users WHERE identifier = :identifier" parameters = {"identifier": identifier} result = await self.execute_sql(query=query, parameters=parameters) @@ -114,20 +119,23 @@ async def get_user(self, identifier: str) -> Optional[PersistedUser]: return None async def create_user(self, user: User) -> Optional[PersistedUser]: - if self.show_logger: logger.info(f"SQLAlchemy: create_user, user_identifier={user.identifier}") + if self.show_logger: + logger.info(f"SQLAlchemy: create_user, user_identifier={user.identifier}") existing_user: Optional["PersistedUser"] = await self.get_user(user.identifier) user_dict: Dict[str, Any] = { "identifier": str(user.identifier), "metadata": json.dumps(user.metadata) or {}, } if not existing_user: # create the user - if self.show_logger: logger.info("SQLAlchemy: create_user, creating the user") + if self.show_logger: + logger.info("SQLAlchemy: create_user, creating the user") user_dict["id"] = str(uuid.uuid4()) user_dict["createdAt"] = await self.get_current_timestamp() query = """INSERT INTO users ("id", "identifier", "createdAt", "metadata") VALUES (:id, :identifier, :createdAt, :metadata)""" await self.execute_sql(query=query, parameters=user_dict) else: # update the user - if self.show_logger: logger.info("SQLAlchemy: update user metadata") + if self.show_logger: + logger.info("SQLAlchemy: update user metadata") query = """UPDATE users SET "metadata" = :metadata WHERE "identifier" = :identifier""" await self.execute_sql( query=query, parameters=user_dict @@ -136,7 +144,8 @@ async def create_user(self, user: User) -> Optional[PersistedUser]: ###### Threads ###### async def get_thread_author(self, thread_id: str) -> str: - if self.show_logger: logger.info(f"SQLAlchemy: get_thread_author, thread_id={thread_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: get_thread_author, thread_id={thread_id}") query = """SELECT "userIdentifier" FROM threads WHERE "id" = :id""" parameters = {"id": thread_id} result = await self.execute_sql(query=query, parameters=parameters) @@ -147,7 +156,8 @@ async def get_thread_author(self, thread_id: str) -> str: raise ValueError(f"Author not found for thread_id {thread_id}") async def get_thread(self, thread_id: str) -> Optional[ThreadDict]: - if self.show_logger: logger.info(f"SQLAlchemy: get_thread, thread_id={thread_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: get_thread, thread_id={thread_id}") user_threads: Optional[List[ThreadDict]] = await self.get_all_user_threads( thread_id=thread_id ) @@ -164,7 +174,8 @@ async def update_thread( metadata: Optional[Dict] = None, tags: Optional[List[str]] = None, ): - if self.show_logger: logger.info(f"SQLAlchemy: update_thread, thread_id={thread_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: update_thread, thread_id={thread_id}") if context.session.user is not None: user_identifier = context.session.user.identifier else: @@ -201,7 +212,8 @@ async def update_thread( await self.execute_sql(query=query, parameters=parameters) async def delete_thread(self, thread_id: str): - if self.show_logger: logger.info(f"SQLAlchemy: delete_thread, thread_id={thread_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: delete_thread, thread_id={thread_id}") # Delete feedbacks/elements/steps/thread feedbacks_query = """DELETE FROM feedbacks WHERE "forId" IN (SELECT "id" FROM steps WHERE "threadId" = :id)""" elements_query = """DELETE FROM elements WHERE "threadId" = :id""" @@ -216,9 +228,10 @@ async def delete_thread(self, thread_id: str): async def list_threads( self, pagination: Pagination, filters: ThreadFilter ) -> PaginatedResponse: - if self.show_logger: logger.info( - f"SQLAlchemy: list_threads, pagination={pagination}, filters={filters}" - ) + if self.show_logger: + logger.info( + f"SQLAlchemy: list_threads, pagination={pagination}, filters={filters}" + ) if not filters.userId: raise ValueError("userId is required") all_user_threads: List[ThreadDict] = ( @@ -276,7 +289,8 @@ async def list_threads( ###### Steps ###### @queue_until_user_message() async def create_step(self, step_dict: "StepDict"): - if self.show_logger: logger.info(f"SQLAlchemy: create_step, step_id={step_dict.get('id')}") + if self.show_logger: + logger.info(f"SQLAlchemy: create_step, step_id={step_dict.get('id')}") if not getattr(context.session.user, "id", None): raise ValueError("No authenticated user in context") step_dict["showInput"] = ( @@ -306,12 +320,14 @@ async def create_step(self, step_dict: "StepDict"): @queue_until_user_message() async def update_step(self, step_dict: "StepDict"): - if self.show_logger: logger.info(f"SQLAlchemy: update_step, step_id={step_dict.get('id')}") + if self.show_logger: + logger.info(f"SQLAlchemy: update_step, step_id={step_dict.get('id')}") await self.create_step(step_dict) @queue_until_user_message() async def delete_step(self, step_id: str): - if self.show_logger: logger.info(f"SQLAlchemy: delete_step, step_id={step_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: delete_step, step_id={step_id}") # Delete feedbacks/elements/steps feedbacks_query = """DELETE FROM feedbacks WHERE "forId" = :id""" elements_query = """DELETE FROM elements WHERE "forId" = :id""" @@ -323,7 +339,8 @@ async def delete_step(self, step_id: str): ###### Feedback ###### async def upsert_feedback(self, feedback: Feedback) -> str: - if self.show_logger: logger.info(f"SQLAlchemy: upsert_feedback, feedback_id={feedback.id}") + if self.show_logger: + logger.info(f"SQLAlchemy: upsert_feedback, feedback_id={feedback.id}") feedback.id = feedback.id or str(uuid.uuid4()) feedback_dict = asdict(feedback) parameters = { @@ -345,7 +362,8 @@ async def upsert_feedback(self, feedback: Feedback) -> str: return feedback.id async def delete_feedback(self, feedback_id: str) -> bool: - if self.show_logger: logger.info(f"SQLAlchemy: delete_feedback, feedback_id={feedback_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: delete_feedback, feedback_id={feedback_id}") query = """DELETE FROM feedbacks WHERE "id" = :feedback_id""" parameters = {"feedback_id": feedback_id} await self.execute_sql(query=query, parameters=parameters) @@ -354,11 +372,10 @@ async def delete_feedback(self, feedback_id: str) -> bool: ###### Elements ###### @queue_until_user_message() async def create_element(self, element: "Element"): - if self.show_logger: logger.info(f"SQLAlchemy: create_element, element_id = {element.id}") + if self.show_logger: + logger.info(f"SQLAlchemy: create_element, element_id = {element.id}") if not getattr(context.session.user, "id", None): raise ValueError("No authenticated user in context") - if isinstance(element, Avatar): # Skip creating elements of type avatar - return if not self.storage_provider: logger.warn( f"SQLAlchemy: create_element error. No blob_storage_client is configured!" @@ -417,7 +434,8 @@ async def create_element(self, element: "Element"): @queue_until_user_message() async def delete_element(self, element_id: str): - if self.show_logger: logger.info(f"SQLAlchemy: delete_element, element_id={element_id}") + if self.show_logger: + logger.info(f"SQLAlchemy: delete_element, element_id={element_id}") query = """DELETE FROM elements WHERE "id" = :id""" parameters = {"id": element_id} await self.execute_sql(query=query, parameters=parameters) @@ -429,7 +447,8 @@ async def get_all_user_threads( self, user_id: Optional[str] = None, thread_id: Optional[str] = None ) -> Optional[List[ThreadDict]]: """Fetch all user threads up to self.user_thread_limit, or one thread by id if thread_id is provided.""" - if self.show_logger: logger.info(f"SQLAlchemy: get_all_user_threads") + if self.show_logger: + logger.info(f"SQLAlchemy: get_all_user_threads") user_threads_query = """ SELECT "id" AS thread_id, @@ -563,7 +582,7 @@ async def get_all_user_threads( tags=step_feedback.get("step_tags"), input=( step_feedback.get("step_input", "") - if step_feedback["step_showinput"] == "true" + if step_feedback["step_showinput"] == "true" else None ), output=step_feedback.get("step_output", ""), diff --git a/backend/chainlit/element.py b/backend/chainlit/element.py index 6c54c0d9be..487203b36a 100644 --- a/backend/chainlit/element.py +++ b/backend/chainlit/element.py @@ -1,11 +1,11 @@ import json +import mimetypes import uuid from enum import Enum from io import BytesIO from typing import Any, ClassVar, List, Literal, Optional, TypedDict, TypeVar, Union import filetype -import mimetypes from chainlit.context import context from chainlit.data import get_data_layer from chainlit.logger import logger @@ -21,7 +21,7 @@ } ElementType = Literal[ - "image", "avatar", "text", "pdf", "tasklist", "audio", "video", "file", "plotly" + "image", "text", "pdf", "tasklist", "audio", "video", "file", "plotly" ] ElementDisplay = Literal["inline", "side", "page"] ElementSize = Literal["small", "medium", "large"] @@ -170,7 +170,7 @@ async def send(self, for_id: str): ) if not self.mime and self.url: self.mime = mimetypes.guess_type(self.url)[0] - + await self._create() if not self.url and not self.chainlit_key: @@ -190,14 +190,6 @@ class Image(Element): size: ElementSize = "medium" -@dataclass -class Avatar(Element): - type: ClassVar[ElementType] = "avatar" - - async def send(self): - await super().send(for_id="") - - @dataclass class Text(Element): """Useful to send a text (not a message) to the UI.""" diff --git a/backend/chainlit/message.py b/backend/chainlit/message.py index 474f4cb33c..f9bc71b84a 100644 --- a/backend/chainlit/message.py +++ b/backend/chainlit/message.py @@ -173,21 +173,21 @@ async def stream_token(self, token: str, is_sequence=False): Sends a token to the UI. This is useful for streaming messages. Once all tokens have been streamed, call .send() to end the stream and persist the message if persistence is enabled. """ - - if not self.streaming: - self.streaming = True - step_dict = self.to_dict() - await context.emitter.stream_start(step_dict) - if is_sequence: self.content = token else: self.content += token assert self.id - await context.emitter.send_token( - id=self.id, token=token, is_sequence=is_sequence - ) + + if not self.streaming: + self.streaming = True + step_dict = self.to_dict() + await context.emitter.stream_start(step_dict) + else: + await context.emitter.send_token( + id=self.id, token=token, is_sequence=is_sequence + ) class Message(MessageBase): @@ -357,7 +357,7 @@ def __init__( content: str, author: str = config.ui.name, type: MessageStepType = "assistant_message", - disable_feedback: bool = False, + disable_feedback: bool = True, timeout: int = 60, raise_on_timeout: bool = False, ): @@ -425,7 +425,7 @@ def __init__( max_files=1, author=config.ui.name, type: MessageStepType = "assistant_message", - disable_feedback: bool = False, + disable_feedback: bool = True, timeout=90, raise_on_timeout=False, ): @@ -501,7 +501,7 @@ def __init__( content: str, actions: List[Action], author=config.ui.name, - disable_feedback=False, + disable_feedback=True, timeout=90, raise_on_timeout=False, ): diff --git a/backend/chainlit/server.py b/backend/chainlit/server.py index e2c33c026d..973e1a4b4d 100644 --- a/backend/chainlit/server.py +++ b/backend/chainlit/server.py @@ -234,7 +234,9 @@ def get_html_template(): CSS_PLACEHOLDER = "" default_url = "https://github.com/Chainlit/chainlit" - default_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png" + default_meta_image_url = ( + "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png" + ) url = config.ui.github or default_url meta_image_url = config.ui.custom_meta_image_url or default_meta_image_url @@ -565,6 +567,12 @@ async def project_settings( if config.code.on_audio_chunk: config.features.audio.enabled = True + debug_url = None + data_layer = get_data_layer() + + if data_layer and config.run.debug: + debug_url = await data_layer.build_debug_url() + return JSONResponse( content={ "ui": config.ui.to_dict(), @@ -574,6 +582,7 @@ async def project_settings( "threadResumable": bool(config.code.on_chat_resume), "markdown": markdown, "chatProfiles": profiles, + "debugUrl": debug_url, } ) @@ -812,6 +821,22 @@ async def get_logo(theme: Optional[Theme] = Query(Theme.light)): return FileResponse(logo_path, media_type=media_type) +@app.get("/avatars/{avatar_id}") +async def get_avatar(avatar_id: str): + avatar_id = avatar_id.strip().replace(" ", "_") + + avatar_path = os.path.join(APP_ROOT, "public", "avatars", f"{avatar_id}.*") + + files = glob.glob(avatar_path) + + if files: + avatar_path = files[0] + media_type, _ = mimetypes.guess_type(avatar_path) + return FileResponse(avatar_path, media_type=media_type) + else: + return await get_favicon() + + @app.head("/") def status_check(): return {"message": "Site is operational"} diff --git a/backend/chainlit/step.py b/backend/chainlit/step.py index debc2dcf3b..f2c7f75fed 100644 --- a/backend/chainlit/step.py +++ b/backend/chainlit/step.py @@ -385,10 +385,10 @@ async def stream_token(self, token: str, is_sequence=False): self.streaming = True step_dict = self.to_dict() await context.emitter.stream_start(step_dict) - - await context.emitter.send_token( - id=self.id, token=token, is_sequence=is_sequence - ) + else: + await context.emitter.send_token( + id=self.id, token=token, is_sequence=is_sequence + ) # Handle parameter less decorator def __call__(self, func): diff --git a/backend/pyproject.toml b/backend/pyproject.toml index c9bc92e106..f042d57a3f 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "chainlit" -version = "1.1.202" +version = "1.1.300" keywords = [ 'LLM', 'Agents', diff --git a/cypress/e2e/avatar/.chainlit/config.toml b/cypress/e2e/avatar/.chainlit/config.toml deleted file mode 100644 index 0c509af72c..0000000000 --- a/cypress/e2e/avatar/.chainlit/config.toml +++ /dev/null @@ -1,62 +0,0 @@ -[project] -# Whether to enable telemetry (default: true). No personal data is collected. -enable_telemetry = true - -# List of environment variables to be provided by each user to use the app. -user_env = [] - -# Duration (in seconds) during which the session is saved when the connection is lost -session_timeout = 3600 - -# Enable third parties caching (e.g LangChain cache) -cache = false - -# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317) -# follow_symlink = false - -[features] -# Show the prompt playground -prompt_playground = true - -[UI] -# Name of the app and chatbot. -name = "Chatbot" - -# Description of the app and chatbot. This is used for HTML tags. -# description = "" - -# Large size content are by default collapsed for a cleaner ui -default_collapse_content = true - -# The default value for the expand messages settings. -default_expand_messages = false - -# Hide the chain of thought details from the user in the UI. -hide_cot = false - -# Link to your github repo. This will add a github button in the UI's header. -# github = "" - -# Override default MUI light theme. (Check theme.ts) -[UI.theme.light] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.light.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - -# Override default MUI dark theme. (Check theme.ts) -[UI.theme.dark] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.dark.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - - -[meta] -generated_by = "0.6.402" diff --git a/cypress/e2e/avatar/main.py b/cypress/e2e/avatar/main.py deleted file mode 100644 index f1e9d8dc4e..0000000000 --- a/cypress/e2e/avatar/main.py +++ /dev/null @@ -1,32 +0,0 @@ -import chainlit as cl - - -@cl.on_chat_start -async def start(): - await cl.Avatar( - name="Tool 1", - url="https://avatars.githubusercontent.com/u/128686189?s=400&u=a1d1553023f8ea0921fba0debbe92a8c5f840dd9&v=4", - ).send() - - await cl.Avatar(name="Cat", path="./public/cat.jpeg").send() - await cl.Avatar(name="Cat 2", url="/public/cat.jpeg").send() - - await cl.Message( - content="This message should not have an avatar!", author="Tool 0" - ).send() - - await cl.Message( - content="Tool 1! This message should have an avatar!", author="Tool 1" - ).send() - - await cl.Message( - content="This message should not have an avatar!", author="Tool 2" - ).send() - - await cl.Message( - content="This message should have a cat avatar!", author="Cat" - ).send() - - await cl.Message( - content="This message should have a cat avatar!", author="Cat 2" - ).send() diff --git a/cypress/e2e/avatar/public/cat.jpeg b/cypress/e2e/avatar/public/cat.jpeg deleted file mode 100644 index 53834a3d82d03101f6003698cf116217f94bcd53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638682 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

lA2%ThMPtbiJ* za4$T{xM1; z(*+CeJ552?0g26OqXjJYFf1dotz0oWYrfdl`e8j^F+vIoR2-$kMzI{dOfRcLpM+aP z5XxQ$Y(p;&y0Tzo} zt;=x_jBI~5*%B3~c=z!L^h`bU4&(By6{q_dY8EcPVp#$#?RVTgq?YM=CVNuvnQ`?j zYT-j%C(N-6A^H~p)_?V818^M)tBK?sHIsPQ*j6!{3mgUWyniRsNqQ{GQ!}SkU z(rMNZaJTPjfJIUVpm0E^i_5$2R07BCmI9P7+yTPIIJ%WRMt~P-=KFzk2>HI{Zb1+f z3>$I=Dq~ev^-jIQ<6wjFyKDND?$0m@uCl+TRjgG7A~`hI+%w^EpXxVBwU}Z~(Zl}$ z%*-JjB}yTcvQq#pa|v9JBuJ}*gHeR3LZ z+&B7;ktGy&3ZtLP=rM~U)h2&)hFwHQ{6*oaMBE1>zfhpCF?$_c;-uNBYQ-wZR*D30 zw&ge?+Af|%Rb^auOR;FWm9TP4wlu&CY5L>NBFXw7EfU5=TB;{e$fd2I`eHg(Wq}sr z%24qwqjq^CmPGDb?26%TH2`y%!P)~>R$m~>u+F@E#PT=W{X*?8c`jUuKlZ5BgNIMJ zowva%*CcUa*SHKcCY;0EramyOgkHLZac_+X_uDB;*ca&K3~96>{|eu4HxTK2cTZVWFA-0A2F2Mm07R zt#Dq+Y$Q-*a10|jTlbd8`C-%!z(9<(D{X_(6bKw@6S?11%bp&Yc`GZ}oQ*~Jqu(ny zAlpV@-cmV@B`<=E;nOSE?`1e&l(JYhU|K`CriHMYS7dvbz^c!<8pW?Iℑ6z5APA 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�gN99y6QD`K<+(3BXVKiaCE60*Ki|thds=C*^l6s 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 { - before(() => { - runTestServer(); - }); - - it('should be able to display avatars', () => { - cy.get('.step').should('have.length', 5); - - cy.get('.step').eq(0).find('img').should('have.length', 0); - cy.get('.step').eq(1).find('img').should('have.length', 1); - cy.get('.step').eq(2).find('img').should('have.length', 0); - cy.get('.step').eq(3).find('img').should('have.length', 1); - cy.get('.step').eq(4).find('img').should('have.length', 1); - - cy.get('.element-link').should('have.length', 0); - }); -}); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index b4d5508858..0f93924e45 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -11,8 +11,6 @@ import { Theme, ThemeProvider } from '@mui/material/styles'; import { useChatSession } from '@chainlit/react-client'; -import Hotkeys from 'components/Hotkeys'; -import SettingsModal from 'components/molecules/settingsModal'; import ChatSettingsModal from 'components/organisms/chat/settings'; import PromptPlayground from 'components/organisms/playground'; @@ -45,6 +43,7 @@ declare global { interface Window { renderingCodeBlock?: boolean; theme?: { + default: string; light?: ThemOverride; dark?: ThemOverride; }; @@ -152,8 +151,6 @@ function App() { > - - diff --git a/frontend/src/AppWrapper.tsx b/frontend/src/AppWrapper.tsx index 019b8b9a41..8f572be1ab 100644 --- a/frontend/src/AppWrapper.tsx +++ b/frontend/src/AppWrapper.tsx @@ -52,9 +52,7 @@ export default function AppWrapper() { setProjectSettings(data); setAppSettings((prev) => ({ ...prev, - defaultCollapseContent: data.ui.default_collapse_content ?? true, - expandAll: !!data.ui.default_expand_messages, - hideCot: !!data.ui.hide_cot + defaultCollapseContent: data.ui.default_collapse_content ?? true })); }, [data, setProjectSettings, setAppSettings]); diff --git a/frontend/src/assets/debug.tsx b/frontend/src/assets/debug.tsx new file mode 100644 index 0000000000..fb8520e9a1 --- /dev/null +++ b/frontend/src/assets/debug.tsx @@ -0,0 +1,31 @@ +import SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'; + +const DebugIcon = (props: SvgIconProps) => { + return ( + + + + + + + + + + + + + {' '} + + + ); +}; + +export default DebugIcon; diff --git a/frontend/src/components/Hotkeys.tsx b/frontend/src/components/Hotkeys.tsx deleted file mode 100644 index 6c30a6037c..0000000000 --- a/frontend/src/components/Hotkeys.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { useHotkeys } from 'react-hotkeys-hook'; -import { useSetRecoilState } from 'recoil'; - -import { settingsState } from 'state/settings'; - -export default function Hotkeys() { - const setSettings = useSetRecoilState(settingsState); - useHotkeys('s', () => setSettings((old) => ({ ...old, open: !old.open }))); - - return null; -} diff --git a/frontend/src/components/atoms/buttons/userButton/avatar.tsx b/frontend/src/components/atoms/buttons/userButton/avatar.tsx index 1c8952121b..6cfddc68c8 100644 --- a/frontend/src/components/atoms/buttons/userButton/avatar.tsx +++ b/frontend/src/components/atoms/buttons/userButton/avatar.tsx @@ -34,7 +34,9 @@ export default function UserAvatar(props: ButtonProps) { } {...props} > - {user ? user.identifier : 'Settings'} + + {user ? user.identifier : 'Settings'} + ); } diff --git a/frontend/src/components/atoms/buttons/userButton/menu.tsx b/frontend/src/components/atoms/buttons/userButton/menu.tsx index 2a4185dc37..5e43592521 100644 --- a/frontend/src/components/atoms/buttons/userButton/menu.tsx +++ b/frontend/src/components/atoms/buttons/userButton/menu.tsx @@ -1,11 +1,12 @@ import { useAuth } from 'api/auth'; import { Link } from 'react-router-dom'; -import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { useRecoilState, useRecoilValue } from 'recoil'; +import DarkModeOutlined from '@mui/icons-material/DarkModeOutlined'; import KeyIcon from '@mui/icons-material/Key'; import LogoutIcon from '@mui/icons-material/Logout'; -import SettingsIcon from '@mui/icons-material/Settings'; import { + Box, Divider, ListItem, ListItemIcon, @@ -15,6 +16,7 @@ import { Typography } from '@mui/material'; +import { SwitchInput } from 'components/atoms/inputs/SwitchInput'; import { Translator } from 'components/i18n'; import { projectSettingsState } from 'state/project'; @@ -28,8 +30,8 @@ interface Props { export default function UserMenu({ anchorEl, open, handleClose }: Props) { const { user, logout } = useAuth(); + const [settings, setSettings] = useRecoilState(settingsState); const pSettings = useRecoilValue(projectSettingsState); - const setAppSettings = useSetRecoilState(settingsState); const requiredKeys = !!pSettings?.userEnv?.length; const userNameItem = user && ( @@ -43,24 +45,32 @@ export default function UserMenu({ anchorEl, open, handleClose }: Props) { ); - const settingsItem = ( - { - setAppSettings((old) => ({ ...old, open: true })); - handleClose(); - }} - > + const themeItem = ( + - + - - - - - - - + + } + /> + + { + const variant = settings.theme === 'light' ? 'dark' : 'light'; + localStorage.setItem('themeVariant', variant); + setSettings((old) => ({ ...old, theme: variant })); + }} + checked={settings.theme === 'dark'} + inputProps={{ + 'aria-labelledby': 'switch-theme' + }} + /> + + ); const apiKeysItem = requiredKeys && ( @@ -87,12 +97,9 @@ export default function UserMenu({ anchorEl, open, handleClose }: Props) { ); - const menuItems = [ - userNameItem, - settingsItem, - apiKeysItem, - logoutItem - ].filter((i) => !!i); + const menuItems = [userNameItem, themeItem, apiKeysItem, logoutItem].filter( + (i) => !!i + ); const itemsWithDivider = menuItems.reduce((acc, curr, i) => { if (i === menuItems.length - 1) { diff --git a/frontend/src/components/atoms/elements/Avatar.tsx b/frontend/src/components/atoms/elements/Avatar.tsx deleted file mode 100644 index c86eac1d15..0000000000 --- a/frontend/src/components/atoms/elements/Avatar.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import Avatar from '@mui/material/Avatar'; - -import { type IAvatarElement } from 'client-types/'; - -interface Props { - author: string; - bgColor?: string; - element?: IAvatarElement; -} - -const AvatarElement = ({ element, author, bgColor }: Props) => { - let avatar: JSX.Element; - const sx = { - width: 26, - height: 26, - fontSize: '0.75rem', - mt: '-2px', - bgcolor: element?.url ? 'transparent' : bgColor - }; - if (element?.url) { - avatar = ; - } else { - avatar = {author[0]?.toUpperCase()}; - } - return {avatar}; -}; - -export { AvatarElement }; diff --git a/frontend/src/components/atoms/elements/index.ts b/frontend/src/components/atoms/elements/index.ts index 9a55c750f7..0a520ff7e3 100644 --- a/frontend/src/components/atoms/elements/index.ts +++ b/frontend/src/components/atoms/elements/index.ts @@ -1,5 +1,4 @@ export { AudioElement } from './Audio'; -export { AvatarElement } from './Avatar'; export { Element } from './Element'; export { ElementSideView } from './ElementSideView'; export { ElementView } from './ElementView'; diff --git a/frontend/src/components/molecules/Code.tsx b/frontend/src/components/molecules/Code.tsx index 1c213c22dc..06c59926ca 100644 --- a/frontend/src/components/molecules/Code.tsx +++ b/frontend/src/components/molecules/Code.tsx @@ -92,7 +92,7 @@ const Code = ({ children, ...props }: any) => { > { + ({ message, elements, actions, isRunning, isLast }: Props) => { const { - expandAll, - hideCot, highlightedMessage, defaultCollapseContent, allowHtml, @@ -52,19 +37,12 @@ const Message = memo( } = useContext(MessageContext); const layoutMaxWidth = useLayoutMaxWidth(); - const [showDetails, setShowDetails] = useState(expandAll); - - useEffect(() => { - setShowDetails(expandAll); - }, [expandAll]); - - if (hideCot && indent) { - return null; - } - const isAsk = message.waitForAnswer; const isUserMessage = message.type === 'user_message'; + const forceDisplayCursor = + isLast && isRunning && (!message.streaming || window.renderingCodeBlock); + return ( - showBorder ? `1px solid ${theme.palette.divider}` : 'none', animation: message.id && highlightedMessage === message.id ? `3s ease-in-out 0.1s ${flash}` @@ -120,40 +96,17 @@ const Message = memo( latex={latex} /> - setShowDetails(!showDetails)} - loading={isRunning && isLast} - /> - {message.steps && showDetails && ( - + {forceDisplayCursor && ( + + + + )} ) : ( - - setShowDetails(!showDetails)} - loading={isRunning && isLast} - /> - {message.steps && showDetails && ( - - )} - + + + )} + {forceDisplayCursor && ( + + + + )} {actions?.length ? ( ) : null} - + )} - {isLast && - isRunning && - (!message.streaming || window.renderingCodeBlock) && ( - - - - )} ); diff --git a/frontend/src/components/molecules/messages/Messages.tsx b/frontend/src/components/molecules/messages/Messages.tsx index 0a609e92bb..5cb1a752ad 100644 --- a/frontend/src/components/molecules/messages/Messages.tsx +++ b/frontend/src/components/molecules/messages/Messages.tsx @@ -18,7 +18,6 @@ const Messages = memo( const messageContext = useContext(MessageContext); const isRoot = indent === 0; - let previousAuthor = ''; const filtered = messages.filter((m, i) => { const content = m.output; @@ -26,7 +25,7 @@ const Messages = memo( const hasInlinedElement = elements.find( (el) => el.display === 'inline' && el.forId === m.id ); - const hasChildren = !!m.steps?.length && !messageContext.hideCot; + const hasChildren = !!m.steps?.length; const isLast = i === messages.length - 1; const messageRunning = isRunning === undefined @@ -43,23 +42,17 @@ const Messages = memo( return ( <> {filtered.map((m, i) => { - const author = m.name; const isLast = filtered.length - 1 === i; let messageRunning = isRunning === undefined ? messageContext.loading : isRunning; if (isRoot) { messageRunning = messageRunning && isLast; } - const showAvatar = author !== previousAuthor; - const showBorder = false; - previousAuthor = author; return ( { - const context = useContext(MessageContext); - const getColorForName = useColorForName(context.uiName); - - const isUser = message.type === 'user_message'; - const author = isUser ? 'You' : message.name; - - const avatarEl = context.avatars.find((e) => e.name === author); - const avatar = show ? ( - - - {(!!message.indent || message.parentId) && ( - - )} - - ) : ( - - ); - const name = ( - - {show ? ( - - {author} - - ) : null} - - - ); - - return ( - - {avatar} - - {name} - {children} - - - ); -}; - -export { Author }; diff --git a/frontend/src/components/molecules/messages/components/Avatar.tsx b/frontend/src/components/molecules/messages/components/Avatar.tsx new file mode 100644 index 0000000000..d1c405eda7 --- /dev/null +++ b/frontend/src/components/molecules/messages/components/Avatar.tsx @@ -0,0 +1,30 @@ +import { useRecoilValue } from 'recoil'; + +import Avatar from '@mui/material/Avatar'; + +import { apiClientState } from 'state/apiClient'; + +interface Props { + author: string; +} + +const MessageAvatar = ({ author }: Props) => { + const apiClient = useRecoilValue(apiClientState); + const url = apiClient?.buildEndpoint(`/avatars/${author}`); + + return ( + + + + ); +}; + +export { MessageAvatar }; diff --git a/frontend/src/components/molecules/messages/components/DebugButton.tsx b/frontend/src/components/molecules/messages/components/DebugButton.tsx new file mode 100644 index 0000000000..8c920ac187 --- /dev/null +++ b/frontend/src/components/molecules/messages/components/DebugButton.tsx @@ -0,0 +1,31 @@ +import IconButton from '@mui/material/IconButton'; +import Tooltip from '@mui/material/Tooltip'; + +import DebugIcon from 'assets/debug'; + +import type { IStep } from 'client-types/'; + +interface Props { + debugUrl: string; + step: IStep; +} + +const DebugButton = ({ step, debugUrl }: Props) => { + const href = debugUrl + .replace('[thread_id]', step.threadId!) + .replace('[step_id]', step.id); + return ( + + + + + + ); +}; + +export { DebugButton }; diff --git a/frontend/src/components/molecules/messages/components/DetailsButton.tsx b/frontend/src/components/molecules/messages/components/DetailsButton.tsx index c0c54006c3..aae00b005d 100644 --- a/frontend/src/components/molecules/messages/components/DetailsButton.tsx +++ b/frontend/src/components/molecules/messages/components/DetailsButton.tsx @@ -1,6 +1,3 @@ -import { MessageContext } from 'contexts/MessageContext'; -import { useContext } from 'react'; - import { GreyButton } from 'components/atoms/buttons/GreyButton'; import { Translator } from 'components/i18n'; @@ -17,9 +14,8 @@ interface Props { } const DetailsButton = ({ message, opened, onClick, loading }: Props) => { - const messageContext = useContext(MessageContext); const nestedCount = message.steps?.length; - const nested = !!nestedCount && !messageContext.hideCot; + const nested = !!nestedCount; const lastStep = nested ? message.steps![nestedCount - 1] : undefined; diff --git a/frontend/src/components/molecules/messages/components/MessageButtons.tsx b/frontend/src/components/molecules/messages/components/MessageButtons.tsx index cf3fdf365c..bd71382cdb 100644 --- a/frontend/src/components/molecules/messages/components/MessageButtons.tsx +++ b/frontend/src/components/molecules/messages/components/MessageButtons.tsx @@ -1,15 +1,21 @@ import { MessageContext } from 'contexts/MessageContext'; import { useContext } from 'react'; +import { useRecoilValue } from 'recoil'; import { grey } from 'theme/palette'; import Stack from '@mui/material/Stack'; +import { useChatMessages } from '@chainlit/react-client'; + import { ClipboardCopy } from 'components/atoms/ClipboardCopy'; import { useIsDarkMode } from 'hooks/useIsDarkMode'; -import type { IStep } from 'client-types/'; +import { projectSettingsState } from 'state/project'; + +import { type IStep } from 'client-types/'; +import { DebugButton } from './DebugButton'; import { FeedbackButtons } from './FeedbackButtons'; import { PlaygroundButton } from './PlaygroundButton'; @@ -20,6 +26,8 @@ interface Props { const MessageButtons = ({ message }: Props) => { const isDark = useIsDarkMode(); const { showFeedbackButtons: showFbButtons } = useContext(MessageContext); + const pSettings = useRecoilValue(projectSettingsState); + const { firstInteraction } = useChatMessages(); const showPlaygroundButton = !!message.generation; const isUser = message.type === 'user_message'; @@ -35,7 +43,14 @@ const MessageButtons = ({ message }: Props) => { !isAsk && hasContent; - const show = showCopyButton || showPlaygroundButton || showFeedbackButtons; + const showDebugButton = + !!pSettings?.debugUrl && !!message.threadId && !!firstInteraction; + + const show = + showCopyButton || + showDebugButton || + showPlaygroundButton || + showFeedbackButtons; if (!show) { return null; @@ -50,6 +65,9 @@ const MessageButtons = ({ message }: Props) => { > {showCopyButton ? : null} {showFeedbackButtons ? : null} + {showDebugButton ? ( + + ) : null} {showPlaygroundButton ? : null} ); diff --git a/frontend/src/components/molecules/messages/components/MessageContent.tsx b/frontend/src/components/molecules/messages/components/MessageContent.tsx index 2e43532ca4..e8635f7de4 100644 --- a/frontend/src/components/molecules/messages/components/MessageContent.tsx +++ b/frontend/src/components/molecules/messages/components/MessageContent.tsx @@ -29,9 +29,10 @@ const MessageContent = memo( let lineCount = 0; let contentLength = 0; - const content = message.streaming - ? message.output + CURSOR_PLACEHOLDER - : message.output; + const content = + message.streaming && message.output + ? message.output + CURSOR_PLACEHOLDER + : message.output; const { preparedContent: output, diff --git a/frontend/src/components/molecules/settingsModal.tsx b/frontend/src/components/molecules/settingsModal.tsx deleted file mode 100644 index dbac2465eb..0000000000 --- a/frontend/src/components/molecules/settingsModal.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import { useRecoilState, useRecoilValue } from 'recoil'; - -import DarkModeOutlined from '@mui/icons-material/DarkModeOutlined'; -import EmojiObjectsIcon from '@mui/icons-material/EmojiObjects'; -import ExpandIcon from '@mui/icons-material/Expand'; -import { - Box, - Dialog, - DialogContent, - List, - ListItem, - ListItemIcon, - ListItemText, - ListSubheader -} from '@mui/material'; - -import { SwitchInput } from 'components/atoms/inputs/SwitchInput'; -import { Translator } from 'components/i18n'; - -import { projectSettingsState } from 'state/project'; -import { settingsState } from 'state/settings'; - -export default function SettingsModal() { - const projectSettings = useRecoilValue(projectSettingsState); - const [settings, setSettings] = useRecoilState(settingsState); - - return ( -

setSettings((old) => ({ ...old, open: false }))} - id="settings-dialog" - PaperProps={{ - sx: { - backgroundImage: 'none' - } - }} - > - - - - - } - > - - - - - - } - /> - - - setSettings((old) => ({ ...old, expandAll: !old.expandAll })) - } - checked={settings.expandAll} - inputProps={{ - 'aria-labelledby': 'switch-expand-all' - }} - /> - - - {projectSettings?.ui.hide_cot ? null : ( - - - - - - } - /> - - - setSettings((old) => ({ ...old, hideCot: !old.hideCot })) - } - checked={settings.hideCot} - inputProps={{ - 'aria-labelledby': 'hide-cot' - }} - /> - - - )} - - - - - - } - /> - - { - const variant = settings.theme === 'light' ? 'dark' : 'light'; - localStorage.setItem('themeVariant', variant); - setSettings((old) => ({ ...old, theme: variant })); - }} - checked={settings.theme === 'dark'} - inputProps={{ - 'aria-labelledby': 'switch-theme' - }} - /> - - - - - - ); -} diff --git a/frontend/src/components/organisms/chat/Messages/container.tsx b/frontend/src/components/organisms/chat/Messages/container.tsx index c974e0158d..b813bb202b 100644 --- a/frontend/src/components/organisms/chat/Messages/container.tsx +++ b/frontend/src/components/organisms/chat/Messages/container.tsx @@ -6,7 +6,6 @@ import { toast } from 'sonner'; import { IAction, IAsk, - IAvatarElement, IFeedback, IFunction, IMessageElement, @@ -28,7 +27,6 @@ interface Props { loading: boolean; actions: IAction[]; elements: IMessageElement[]; - avatars: IAvatarElement[]; messages: IStep[]; askUser?: IAsk; autoScroll?: boolean; @@ -50,7 +48,6 @@ const MessageContainer = memo( ({ askUser, loading, - avatars, actions, autoScroll, elements, @@ -160,10 +157,7 @@ const MessageContainer = memo( askUser, allowHtml: projectSettings?.features?.unsafe_allow_html, latex: projectSettings?.features?.latex, - avatars, defaultCollapseContent: appSettings.defaultCollapseContent, - expandAll: appSettings.expandAll, - hideCot: appSettings.hideCot, highlightedMessage, loading, showFeedbackButtons: enableFeedback, @@ -176,10 +170,7 @@ const MessageContainer = memo( }; }, [ appSettings.defaultCollapseContent, - appSettings.expandAll, - appSettings.hideCot, askUser, - avatars, enableFeedback, highlightedMessage, loading, diff --git a/frontend/src/components/organisms/chat/Messages/index.tsx b/frontend/src/components/organisms/chat/Messages/index.tsx index 717de5c419..3cc13192ef 100644 --- a/frontend/src/components/organisms/chat/Messages/index.tsx +++ b/frontend/src/components/organisms/chat/Messages/index.tsx @@ -34,7 +34,7 @@ const Messages = ({ projectSettings, setAutoScroll }: MessagesProps): JSX.Element => { - const { elements, askUser, avatars, loading, actions } = useChatData(); + const { elements, askUser, loading, actions } = useChatData(); const { messages } = useChatMessages(); const { callAction } = useChatInteract(); const { idToResume } = useChatSession(); @@ -146,7 +146,6 @@ const Messages = ({ /> ) : ( { void ) => { xhr: XMLHttpRequest; promise: Promise }; askUser?: IAsk; - avatars: IAvatarElement[]; defaultCollapseContent: boolean; - expandAll: boolean; - hideCot: boolean; highlightedMessage: string | null; loading: boolean; showFeedbackButtons: boolean; diff --git a/frontend/tests/message.spec.tsx b/frontend/tests/message.spec.tsx index ee61fcbff3..4b825fc630 100644 --- a/frontend/tests/message.spec.tsx +++ b/frontend/tests/message.spec.tsx @@ -49,8 +49,6 @@ describe('Message', () => { elements: [], actions: [], indent: 0, - showAvatar: true, - showBorder: true, isRunning: false, isLast: true }; diff --git a/libs/copilot/src/chat/messages/container.tsx b/libs/copilot/src/chat/messages/container.tsx index d7f071cf66..b2ffed6e6f 100644 --- a/libs/copilot/src/chat/messages/container.tsx +++ b/libs/copilot/src/chat/messages/container.tsx @@ -6,11 +6,9 @@ import { toast } from 'sonner'; import { MessageContainer as CMessageContainer } from '@chainlit/app/src/components/molecules/messages/MessageContainer'; import { highlightMessage } from '@chainlit/app/src/state/project'; import { projectSettingsState } from '@chainlit/app/src/state/project'; -import { settingsState } from '@chainlit/app/src/state/settings'; import { IAction, IAsk, - IAvatarElement, IFeedback, IMessageElement, IStep, @@ -22,7 +20,6 @@ interface Props { loading: boolean; actions: IAction[]; elements: IMessageElement[]; - avatars: IAvatarElement[]; messages: IStep[]; askUser?: IAsk; autoScroll?: boolean; @@ -44,7 +41,6 @@ const MessageContainer = memo( ({ askUser, loading, - avatars, actions, autoScroll, elements, @@ -56,7 +52,6 @@ const MessageContainer = memo( }: Props) => { const { apiClient } = useContext(WidgetContext); const projectSettings = useRecoilValue(projectSettingsState); - const { hideCot } = useRecoilValue(settingsState); const setSideView = useSetRecoilState(sideViewState); const highlightedMessage = useRecoilValue(highlightMessage); const { uploadFile: _uploadFile } = useChatInteract(); @@ -108,10 +103,7 @@ const MessageContainer = memo( askUser, allowHtml: projectSettings?.features?.unsafe_allow_html, latex: projectSettings?.features?.latex, - avatars, defaultCollapseContent: true, - expandAll: false, - hideCot: hideCot, highlightedMessage, loading, showFeedbackButtons: enableFeedback, @@ -124,7 +116,6 @@ const MessageContainer = memo( }; }, [ askUser, - avatars, enableFeedback, highlightedMessage, loading, diff --git a/libs/copilot/src/chat/messages/index.tsx b/libs/copilot/src/chat/messages/index.tsx index af3f5ac367..fc24fbea45 100644 --- a/libs/copilot/src/chat/messages/index.tsx +++ b/libs/copilot/src/chat/messages/index.tsx @@ -36,7 +36,7 @@ const Messages = ({ const { apiClient, accessToken } = useContext(WidgetContext); const { idToResume } = useChatSession(); - const { elements, askUser, avatars, loading, actions } = useChatData(); + const { elements, askUser, loading, actions } = useChatData(); const { messages } = useChatMessages(); const { callAction } = useChatInteract(); const setMessages = useSetRecoilState(messagesState); @@ -101,7 +101,7 @@ const Messages = ({ try { toast.promise(apiClient.deleteFeedback(feedbackId, accessToken), { loading: 'Updating', - success: (res) => { + success: (_) => { setMessages((prev) => updateMessageById(prev, message.id, { ...message, @@ -140,7 +140,6 @@ const Messages = ({ return ( ({ default: [] }); -export const avatarState = atom({ - key: 'AvatarElements', - default: [] -}); - export const tasklistState = atom({ key: 'TasklistElements', default: [] diff --git a/libs/react-client/src/types/element.ts b/libs/react-client/src/types/element.ts index 42a2813614..1d8e25ccd2 100644 --- a/libs/react-client/src/types/element.ts +++ b/libs/react-client/src/types/element.ts @@ -2,7 +2,6 @@ export type IElement = | IImageElement | ITextElement | IPdfElement - | IAvatarElement | ITasklistElement | IAudioElement | IVideoElement @@ -40,10 +39,6 @@ export interface IImageElement extends TMessageElement<'image'> { size?: IElementSize; } -export interface IAvatarElement extends TElement<'avatar'> { - name: string; -} - export interface ITextElement extends TMessageElement<'text'> { language?: string; } diff --git a/libs/react-client/src/useChatData.ts b/libs/react-client/src/useChatData.ts index 7a5b496395..533a35c65b 100644 --- a/libs/react-client/src/useChatData.ts +++ b/libs/react-client/src/useChatData.ts @@ -3,7 +3,6 @@ import { useRecoilValue } from 'recoil'; import { actionState, askUserState, - avatarState, chatSettingsDefaultValueSelector, chatSettingsInputsState, chatSettingsValueState, @@ -22,7 +21,6 @@ export interface IToken { const useChatData = () => { const loading = useRecoilValue(loadingState); const elements = useRecoilValue(elementState); - const avatars = useRecoilValue(avatarState); const tasklists = useRecoilValue(tasklistState); const actions = useRecoilValue(actionState); const session = useRecoilValue(sessionState); @@ -43,7 +41,6 @@ const useChatData = () => { return { actions, askUser, - avatars, chatSettingsDefaultValue, chatSettingsInputs, chatSettingsValue, diff --git a/libs/react-client/src/useChatInteract.ts b/libs/react-client/src/useChatInteract.ts index 76a320ab9c..fe1c1c0b45 100644 --- a/libs/react-client/src/useChatInteract.ts +++ b/libs/react-client/src/useChatInteract.ts @@ -4,7 +4,6 @@ import { accessTokenState, actionState, askUserState, - avatarState, chatSettingsInputsState, chatSettingsValueState, currentThreadIdState, @@ -38,7 +37,6 @@ const useChatInteract = () => { const setLoading = useSetRecoilState(loadingState); const setMessages = useSetRecoilState(messagesState); const setElements = useSetRecoilState(elementState); - const setAvatars = useSetRecoilState(avatarState); const setTasklists = useSetRecoilState(tasklistState); const setActions = useSetRecoilState(actionState); const setTokenCount = useSetRecoilState(tokenCountState); @@ -54,7 +52,6 @@ const useChatInteract = () => { setFirstUserInteraction(undefined); setMessages([]); setElements([]); - setAvatars([]); setTasklists([]); setActions([]); setTokenCount(0); diff --git a/libs/react-client/src/useChatSession.ts b/libs/react-client/src/useChatSession.ts index 51ef2278f5..fa325cbd03 100644 --- a/libs/react-client/src/useChatSession.ts +++ b/libs/react-client/src/useChatSession.ts @@ -10,7 +10,6 @@ import io from 'socket.io-client'; import { actionState, askUserState, - avatarState, callFnState, chatProfileState, chatSettingsInputsState, @@ -28,7 +27,6 @@ import { } from 'src/state'; import { IAction, - IAvatarElement, IElement, IMessageElement, IStep, @@ -58,7 +56,6 @@ const useChatSession = () => { const setCallFn = useSetRecoilState(callFnState); const setElements = useSetRecoilState(elementState); - const setAvatars = useSetRecoilState(avatarState); const setTasklists = useSetRecoilState(tasklistState); const setActions = useSetRecoilState(actionState); const setChatSettingsInputs = useSetRecoilState(chatSettingsInputsState); @@ -132,9 +129,6 @@ const useChatSession = () => { } setMessages(messages); const elements = thread.elements || []; - setAvatars( - (elements as IAvatarElement[]).filter((e) => e.type === 'avatar') - ); setTasklists( (elements as ITasklistElement[]).filter((e) => e.type === 'tasklist') ); @@ -226,16 +220,7 @@ const useChatSession = () => { element.url = client.getElementUrl(element.chainlitKey, sessionId); } - if (element.type === 'avatar') { - setAvatars((old) => { - const index = old.findIndex((e) => e.id === element.id); - if (index === -1) { - return [...old, element]; - } else { - return [...old.slice(0, index), element, ...old.slice(index + 1)]; - } - }); - } else if (element.type === 'tasklist') { + if (element.type === 'tasklist') { setTasklists((old) => { const index = old.findIndex((e) => e.id === element.id); if (index === -1) { @@ -263,9 +248,6 @@ const useChatSession = () => { setTasklists((old) => { return old.filter((e) => e.id !== remove.id); }); - setAvatars((old) => { - return old.filter((e) => e.id !== remove.id); - }); }); socket.on('action', (action: IAction) => { From d1bac89384210e5ca38f29ef7fec22468fbd19e8 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Fri, 24 May 2024 20:07:07 +0200 Subject: [PATCH 02/19] wip --- backend/chainlit/config.py | 4 - backend/chainlit/data/__init__.py | 7 +- backend/chainlit/step.py | 43 +++++--- backend/chainlit/translations/en-US.json | 4 +- backend/pyproject.toml | 2 +- .../default_expand_cot/.chainlit/config.toml | 62 ----------- cypress/e2e/default_expand_cot/main.py | 27 ----- cypress/e2e/default_expand_cot/spec.cy.ts | 18 --- frontend/src/App.css | 1 + frontend/src/assets/Image.tsx | 22 ++++ .../components/molecules/messages/Message.tsx | 3 +- .../molecules/messages/ToolCall.tsx | 103 ++++++++++++++++++ .../molecules/messages/ToolCalls.tsx | 65 +++++++++++ .../messages/components/DebugButton.tsx | 3 + .../messages/components/DetailsButton.tsx | 85 --------------- .../components/organisms/chat/dropScreen.tsx | 7 +- .../src/components/organisms/chat/index.tsx | 3 + .../organisms/chat/inputBox/index.tsx | 1 + frontend/src/state/project.ts | 2 - frontend/src/utils/message.ts | 2 +- libs/copilot/src/app.tsx | 4 +- libs/copilot/src/chat/body.tsx | 4 +- libs/react-client/src/utils/message.ts | 58 +++++++++- 23 files changed, 293 insertions(+), 237 deletions(-) delete mode 100644 cypress/e2e/default_expand_cot/.chainlit/config.toml delete mode 100644 cypress/e2e/default_expand_cot/main.py delete mode 100644 cypress/e2e/default_expand_cot/spec.cy.ts create mode 100644 frontend/src/assets/Image.tsx create mode 100644 frontend/src/components/molecules/messages/ToolCall.tsx create mode 100644 frontend/src/components/molecules/messages/ToolCalls.tsx delete mode 100644 frontend/src/components/molecules/messages/components/DetailsButton.tsx diff --git a/backend/chainlit/config.py b/backend/chainlit/config.py index 0a28149a84..7717afadae 100644 --- a/backend/chainlit/config.py +++ b/backend/chainlit/config.py @@ -107,9 +107,6 @@ # Large size content are by default collapsed for a cleaner ui default_collapse_content = true -# The default value for the expand messages settings. -default_expand_messages = false - # Hide the chain of thought details from the user in the UI. hide_cot = false @@ -254,7 +251,6 @@ class UISettings(DataClassJsonMixin): hide_cot: bool = False # Large size content are by default collapsed for a cleaner ui default_collapse_content: bool = True - default_expand_messages: bool = False github: Optional[str] = None theme: Optional[Theme] = None # Optional custom CSS file that allows you to customize the UI diff --git a/backend/chainlit/data/__init__.py b/backend/chainlit/data/__init__.py index 89e6858439..e7aef6f29b 100644 --- a/backend/chainlit/data/__init__.py +++ b/backend/chainlit/data/__init__.py @@ -467,12 +467,13 @@ async def get_thread(self, thread_id: str) -> "Optional[ThreadDict]": steps = [] # List[StepDict] if thread.steps: for step in thread.steps: + if not config.features.prompt_playground and step.generation: + step.generation = None if config.ui.hide_cot and step.parent_id: - continue + step.input = "" + step.output = "" for attachment in step.attachments: elements.append(self.attachment_to_element_dict(attachment)) - if not config.features.prompt_playground and step.generation: - step.generation = None steps.append(self.step_to_step_dict(step)) return { diff --git a/backend/chainlit/step.py b/backend/chainlit/step.py index f2c7f75fed..0bcb0b2716 100644 --- a/backend/chainlit/step.py +++ b/backend/chainlit/step.py @@ -50,7 +50,6 @@ def step( id: Optional[str] = None, tags: Optional[List[str]] = None, disable_feedback: bool = True, - root: bool = False, language: Optional[str] = None, show_input: Union[bool, str] = False, ): @@ -72,7 +71,6 @@ async def async_wrapper(*args, **kwargs): name=name, id=id, disable_feedback=disable_feedback, - root=root, tags=tags, language=language, show_input=show_input, @@ -85,8 +83,9 @@ async def async_wrapper(*args, **kwargs): try: if result and not step.output: step.output = result - except: - pass + except Exception as e: + step.is_error = True + step.output = str(e) return result return async_wrapper @@ -99,7 +98,6 @@ def sync_wrapper(*args, **kwargs): name=name, id=id, disable_feedback=disable_feedback, - root=root, tags=tags, language=language, show_input=show_input, @@ -113,7 +111,8 @@ def sync_wrapper(*args, **kwargs): if result and not step.output: step.output = result except: - pass + step.is_error = True + step.output = str(e) return result return sync_wrapper @@ -136,7 +135,6 @@ class Step: streaming: bool persisted: bool - root: bool show_input: Union[bool, str] is_error: Optional[bool] @@ -161,7 +159,6 @@ def __init__( metadata: Optional[Dict] = None, tags: Optional[List[str]] = None, disable_feedback: bool = True, - root: bool = False, language: Optional[str] = None, show_input: Union[bool, str] = False, ): @@ -179,7 +176,6 @@ def __init__( self.is_error = False self.show_input = show_input self.parent_id = parent_id - self.root = root self.language = language self.generation = None @@ -299,12 +295,13 @@ async def update(self): tasks = [el.send(for_id=self.id) for el in self.elements] await asyncio.gather(*tasks) - if config.ui.hide_cot and (self.parent_id or not self.root): - return - if not config.features.prompt_playground and "generation" in step_dict: step_dict.pop("generation", None) + if config.ui.hide_cot and (self.parent_id): + step_dict["input"] = "" + step_dict["output"] = "" + await context.emitter.update_step(step_dict) return True @@ -356,12 +353,13 @@ async def send(self): tasks = [el.send(for_id=self.id) for el in self.elements] await asyncio.gather(*tasks) - if config.ui.hide_cot and (self.parent_id or not self.root): - return self - if not config.features.prompt_playground and "generation" in step_dict: step_dict.pop("generation", None) + if config.ui.hide_cot and self.parent_id: + step_dict["input"] = "" + step_dict["output"] = "" + await context.emitter.send_step(step_dict) return self @@ -378,7 +376,7 @@ async def stream_token(self, token: str, is_sequence=False): assert self.id - if config.ui.hide_cot and (self.parent_id or not self.root): + if config.ui.hide_cot and self.parent_id: return if not self.streaming: @@ -408,7 +406,7 @@ async def __aenter__(self): previous_steps = local_steps.get() or [] parent_step = previous_steps[-1] if previous_steps else None - if not self.parent_id and not self.root: + if not self.parent_id: if parent_step: self.parent_id = parent_step.id elif context.session.root_message: @@ -421,6 +419,10 @@ async def __aenter__(self): async def __aexit__(self, exc_type, exc_val, exc_tb): self.end = utc_now() + if exc_type: + self.output = str(exc_val) + self.is_error = True + if self in context.active_steps: context.active_steps.remove(self) @@ -437,7 +439,7 @@ def __enter__(self): previous_steps = local_steps.get() or [] parent_step = previous_steps[-1] if previous_steps else None - if not self.parent_id and not self.root: + if not self.parent_id: if parent_step: self.parent_id = parent_step.id elif context.session.root_message: @@ -450,6 +452,11 @@ def __enter__(self): def __exit__(self, exc_type, exc_val, exc_tb): self.end = utc_now() + + if exc_type: + self.output = str(exc_val) + self.is_error = True + if self in context.active_steps: context.active_steps.remove(self) diff --git a/backend/chainlit/translations/en-US.json b/backend/chainlit/translations/en-US.json index 8a66cb12e9..2836200e17 100644 --- a/backend/chainlit/translations/en-US.json +++ b/backend/chainlit/translations/en-US.json @@ -41,9 +41,7 @@ }, "detailsButton": { "using": "Using", - "running": "Running", - "took_one": "Took {{count}} step", - "took_other": "Took {{count}} steps" + "used": "Used" }, "auth": { "authLogin": { diff --git a/backend/pyproject.toml b/backend/pyproject.toml index f042d57a3f..cc235e3361 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -27,7 +27,7 @@ chainlit = 'chainlit.cli:cli' [tool.poetry.dependencies] python = ">=3.8.1,<4.0.0" httpx = ">=0.23.0" -literalai = "0.0.601" +literalai = "0.0.602" dataclasses_json = "^0.5.7" fastapi = "^0.110.1" starlette = "^0.37.2" diff --git a/cypress/e2e/default_expand_cot/.chainlit/config.toml b/cypress/e2e/default_expand_cot/.chainlit/config.toml deleted file mode 100644 index 46b7efb610..0000000000 --- a/cypress/e2e/default_expand_cot/.chainlit/config.toml +++ /dev/null @@ -1,62 +0,0 @@ -[project] -# Whether to enable telemetry (default: true). No personal data is collected. -enable_telemetry = true - -# List of environment variables to be provided by each user to use the app. -user_env = [] - -# Duration (in seconds) during which the session is saved when the connection is lost -session_timeout = 3600 - -# Enable third parties caching (e.g LangChain cache) -cache = false - -# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317) -# follow_symlink = false - -[features] -# Show the prompt playground -prompt_playground = true - -[UI] -# Name of the app and chatbot. -name = "Chatbot" - -# Description of the app and chatbot. This is used for HTML tags. -# description = "" - -# Large size content are by default collapsed for a cleaner ui -default_collapse_content = true - -# The default value for the expand messages settings. -default_expand_messages = true - -# Hide the chain of thought details from the user in the UI. -hide_cot = false - -# Link to your github repo. This will add a github button in the UI's header. -# github = "" - -# Override default MUI light theme. (Check theme.ts) -[UI.theme.light] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.light.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - -# Override default MUI dark theme. (Check theme.ts) -[UI.theme.dark] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.dark.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - - -[meta] -generated_by = "0.6.402" diff --git a/cypress/e2e/default_expand_cot/main.py b/cypress/e2e/default_expand_cot/main.py deleted file mode 100644 index 83f6d578b2..0000000000 --- a/cypress/e2e/default_expand_cot/main.py +++ /dev/null @@ -1,27 +0,0 @@ -import chainlit as cl - - -@cl.step(name="Tool 3", type="tool") -async def tool_3(): - return "Response from tool 3" - - -@cl.step(name="Tool 2", type="tool") -async def tool_2(): - await tool_3() - return "Response from tool 2" - - -@cl.step(name="Tool 1", type="tool") -async def tool_1(): - await tool_2() - return "Response from tool 1" - - -@cl.on_message -async def main(message: cl.Message): - await tool_1() - - await cl.Message( - content="Final response", - ).send() diff --git a/cypress/e2e/default_expand_cot/spec.cy.ts b/cypress/e2e/default_expand_cot/spec.cy.ts deleted file mode 100644 index 1464d441b9..0000000000 --- a/cypress/e2e/default_expand_cot/spec.cy.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { runTestServer, submitMessage } from '../../support/testUtils'; - -describe('Default Expand', () => { - before(() => { - runTestServer(); - }); - - it('should be able to set the default_expand_messages field in the config to have the CoT expanded by default', () => { - submitMessage('Hello'); - - cy.get(".step:contains('Hello')").contains('Response from tool 1'); - cy.get(".step:contains('Response from tool 1')").contains( - 'Response from tool 2' - ); - cy.get(".step:contains('Hello')").contains('Response from tool 3'); - cy.get(".step:contains('Final response')"); - }); -}); diff --git a/frontend/src/App.css b/frontend/src/App.css index 8e1b199df1..d00655f0e4 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -1,5 +1,6 @@ .markdown-body { overflow-x: auto; + overflow-y: hidden; } .markdown-body img { diff --git a/frontend/src/assets/Image.tsx b/frontend/src/assets/Image.tsx new file mode 100644 index 0000000000..f0c966d72e --- /dev/null +++ b/frontend/src/assets/Image.tsx @@ -0,0 +1,22 @@ +import SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon'; + +const ImageIcon = (props: SvgIconProps) => { + return ( + + + + + ); +}; + +export default ImageIcon; diff --git a/frontend/src/components/molecules/messages/Message.tsx b/frontend/src/components/molecules/messages/Message.tsx index 40de1fedaa..b449af0ecc 100644 --- a/frontend/src/components/molecules/messages/Message.tsx +++ b/frontend/src/components/molecules/messages/Message.tsx @@ -16,6 +16,7 @@ import { useLayoutMaxWidth } from 'hooks/useLayoutMaxWidth'; import type { IAction, IMessageElement, IStep } from 'client-types/'; import BlinkingCursor from '../BlinkingCursor'; +import ToolCalls from './ToolCalls'; interface Props { message: IStep; @@ -42,7 +43,6 @@ const Message = memo( const forceDisplayCursor = isLast && isRunning && (!message.streaming || window.renderingCodeBlock); - return ( + { + return steps.find((step) => step.start && !step.end && !step.isError); + }, [steps]); + + const hasOutput = steps.some((step) => step.output); + const isError = steps.some((step) => step.isError); + + if (!steps.length) { + return null; + } + + const toolName = steps[0].name; + + return ( + + setHover(true)} + onMouseOut={() => setHover(false)} + onClick={() => setOpen(!open)} + > + + theme.typography.fontFamily + }} + > + {using ? ( + <> + {' '} + {toolName} + + ) : ( + <> + {' '} + {toolName} + + )} + {' '} + {using && ( + + )} + + + {hasOutput && (hover || open) ? ( + open ? ( + + ) : ( + + ) + ) : null} + + {open && ( + + {steps + .filter((step) => step.output) + .map((step) => ( + + ))} + + )} + + ); +} diff --git a/frontend/src/components/molecules/messages/ToolCalls.tsx b/frontend/src/components/molecules/messages/ToolCalls.tsx new file mode 100644 index 0000000000..3e33a17435 --- /dev/null +++ b/frontend/src/components/molecules/messages/ToolCalls.tsx @@ -0,0 +1,65 @@ +import { useMemo } from 'react'; + +import Stack from '@mui/material/Stack'; + +import type { IStep } from 'client-types/'; + +import ToolCall from './ToolCall'; + +interface Props { + message: IStep; +} + +function groupToolSteps(step: IStep) { + const groupedSteps: IStep[][] = []; + + let currentGroup: IStep[] = []; + + function traverseAndGroup(currentStep: IStep) { + if (currentStep.type === 'tool') { + if ( + currentGroup.length === 0 || + currentGroup[0].name === currentStep.name + ) { + currentGroup.push(currentStep); + } else { + groupedSteps.push(currentGroup); + + currentGroup = [currentStep]; + } + } + + if (currentStep.steps) { + for (const childStep of currentStep.steps) { + traverseAndGroup(childStep); + } + } + } + + traverseAndGroup(step); + + // Push the last group if it exists + if (currentGroup.length > 0) { + groupedSteps.push(currentGroup); + } + + return groupedSteps; +} + +export default function ToolCalls({ message }: Props) { + const toolCalls = useMemo(() => { + return message.steps ? groupToolSteps(message) : []; + }, [message]); + + if (!toolCalls.length) { + return null; + } + + return ( + + {toolCalls.map((toolCall, index) => ( + + ))} + + ); +} diff --git a/frontend/src/components/molecules/messages/components/DebugButton.tsx b/frontend/src/components/molecules/messages/components/DebugButton.tsx index 8c920ac187..463b281850 100644 --- a/frontend/src/components/molecules/messages/components/DebugButton.tsx +++ b/frontend/src/components/molecules/messages/components/DebugButton.tsx @@ -11,6 +11,9 @@ interface Props { } const DebugButton = ({ step, debugUrl }: Props) => { + if (step.id.startsWith('wrap_')) { + return null; + } const href = debugUrl .replace('[thread_id]', step.threadId!) .replace('[step_id]', step.id); diff --git a/frontend/src/components/molecules/messages/components/DetailsButton.tsx b/frontend/src/components/molecules/messages/components/DetailsButton.tsx deleted file mode 100644 index aae00b005d..0000000000 --- a/frontend/src/components/molecules/messages/components/DetailsButton.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { GreyButton } from 'components/atoms/buttons/GreyButton'; -import { Translator } from 'components/i18n'; - -import ChevronDownIcon from 'assets/chevronDown'; -import ChevronUpIcon from 'assets/chevronUp'; - -import type { IStep } from 'client-types/'; - -interface Props { - message: IStep; - opened: boolean; - loading?: boolean; - onClick: () => void; -} - -const DetailsButton = ({ message, opened, onClick, loading }: Props) => { - const nestedCount = message.steps?.length; - const nested = !!nestedCount; - - const lastStep = nested ? message.steps![nestedCount - 1] : undefined; - - const tool = lastStep ? lastStep.name : undefined; - - if (!tool) { - return null; - } - - // Don't count empty steps - const stepCount = nestedCount - ? message.steps!.filter((m) => !!m.output || m.steps?.length).length - : 0; - - const text = ( - - {loading ? ( - <> - {tool} - - ) : ( - <> - - - )} - - ); - - let id = ''; - if (tool) { - id = tool.trim().toLowerCase().replaceAll(' ', '-'); - } - if (loading) { - id += '-loading'; - } else { - id += '-done'; - } - - return ( - - ) : ( - - ) - ) : undefined - } - onClick={tool ? onClick : undefined} - > - {text} - - ); -}; - -export { DetailsButton }; diff --git a/frontend/src/components/organisms/chat/dropScreen.tsx b/frontend/src/components/organisms/chat/dropScreen.tsx index a577189918..d0fc3501f0 100644 --- a/frontend/src/components/organisms/chat/dropScreen.tsx +++ b/frontend/src/components/organisms/chat/dropScreen.tsx @@ -1,8 +1,9 @@ -import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile'; import { Backdrop, Stack, Typography } from '@mui/material'; import { Translator } from 'components/i18n'; +import ImageIcon from 'assets/Image'; + export default function DropScreen() { return ( - - + + diff --git a/frontend/src/components/organisms/chat/index.tsx b/frontend/src/components/organisms/chat/index.tsx index 6e25e71744..44be2b2507 100644 --- a/frontend/src/components/organisms/chat/index.tsx +++ b/frontend/src/components/organisms/chat/index.tsx @@ -1,3 +1,4 @@ +import { useAuth } from 'api/auth'; import { useUpload } from 'hooks'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -31,6 +32,7 @@ import DropScreen from './dropScreen'; import InputBox from './inputBox'; const Chat = () => { + const { user } = useAuth(); const { idToResume } = useChatSession(); const projectSettings = useRecoilValue(projectSettingsState); @@ -162,6 +164,7 @@ const Chat = () => { useEffect(() => { const currentPage = new URL(window.location.href); if ( + user && projectSettings?.dataPersistence && threadId && currentPage.pathname === '/' diff --git a/frontend/src/components/organisms/chat/inputBox/index.tsx b/frontend/src/components/organisms/chat/inputBox/index.tsx index c7308fb0b5..fbf702670a 100644 --- a/frontend/src/components/organisms/chat/inputBox/index.tsx +++ b/frontend/src/components/organisms/chat/inputBox/index.tsx @@ -105,6 +105,7 @@ const InputBox = memo( flexDirection="column" gap={1} pb={2} + px={2} sx={{ boxSizing: 'border-box', width: '100%', diff --git a/frontend/src/state/project.ts b/frontend/src/state/project.ts index 62219992c2..e3013aa722 100644 --- a/frontend/src/state/project.ts +++ b/frontend/src/state/project.ts @@ -15,9 +15,7 @@ export interface IProjectSettings { name: string; show_readme_as_default?: boolean; description?: string; - hide_cot?: boolean; default_collapse_content?: boolean; - default_expand_messages?: boolean; github?: string; theme: any; custom_css?: string; diff --git a/frontend/src/utils/message.ts b/frontend/src/utils/message.ts index 8c785bea07..772026d3cb 100644 --- a/frontend/src/utils/message.ts +++ b/frontend/src/utils/message.ts @@ -67,7 +67,7 @@ export const prepareContent = ({ }); } - if (language) { + if (language && preparedContent) { const prefix = `\`\`\`${language}`; const suffix = '```'; if (!preparedContent.startsWith('```')) { diff --git a/libs/copilot/src/app.tsx b/libs/copilot/src/app.tsx index b8fff3b8f5..1a73928c39 100644 --- a/libs/copilot/src/app.tsx +++ b/libs/copilot/src/app.tsx @@ -45,11 +45,9 @@ export default function App({ config }: Props) { .then((res) => res.json()) .then((data: IProjectSettings) => { window.theme = data.ui.theme; - data.ui.hide_cot = config.showCot ? data.ui.hide_cot : true; setSettings((old) => ({ ...old, - theme: config.theme ? config.theme : old.theme, - hideCot: data.ui.hide_cot! + theme: config.theme ? config.theme : old.theme })); const _theme = overrideTheme( diff --git a/libs/copilot/src/chat/body.tsx b/libs/copilot/src/chat/body.tsx index 2379ab5af7..b50a997aa7 100644 --- a/libs/copilot/src/chat/body.tsx +++ b/libs/copilot/src/chat/body.tsx @@ -183,7 +183,7 @@ const Chat = () => { height: '100%' }} > - {error && ( + {error ? ( { Could not reach the server. + ) : ( + )} diff --git a/libs/react-client/src/utils/message.ts b/libs/react-client/src/utils/message.ts index 92d1613363..e62047101a 100644 --- a/libs/react-client/src/utils/message.ts +++ b/libs/react-client/src/utils/message.ts @@ -31,8 +31,48 @@ const isLastMessage = (messages: IStep[], index: number) => { // Nested messages utils const addMessage = (messages: IStep[], message: IStep): IStep[] => { + const validRootTypes = ['assistant_message', 'user_message', 'tool']; + const isValidRootType = validRootTypes.includes(message.type); + const isRoot = !message.parentId; + + if (isRoot && !isValidRootType) { + return messages; + } + + const parentMessage = !isRoot + ? findMessageById(messages, message.parentId!) + : undefined; + + const shouldWrap = isRoot || parentMessage?.type == 'user_message'; + if (hasMessageById(messages, message.id)) { return updateMessageById(messages, message.id, message); + } else if (message.type === 'tool' && shouldWrap) { + const lastMessage = + messages.length > 0 ? messages[messages.length - 1] : undefined; + const collapseTool = + lastMessage?.type === 'assistant_message' && + lastMessage?.id.startsWith('wrap_'); + if (lastMessage && collapseTool) { + return [ + ...messages.slice(0, messages.length - 1), + { + ...lastMessage, + steps: [...(lastMessage.steps || []), message] + } + ]; + } + return [ + ...messages, + { + ...message, + input: '', + output: '', + id: 'wrap_' + message.id, + type: 'assistant_message', + steps: [message] + } + ]; } else if ('parentId' in message && message.parentId) { return addMessageToParent(messages, message.parentId, message); } else if ('indent' in message && message.indent && message.indent > 0) { @@ -98,17 +138,25 @@ const addMessageToParent = ( return nextMessages; }; -const hasMessageById = (messages: IStep[], messageId: string) => { +const findMessageById = ( + messages: IStep[], + messageId: string +): IStep | undefined => { for (const message of messages) { if (isEqual(message.id, messageId)) { - return true; + return message; } else if (message.steps && message.steps.length > 0) { - if (hasMessageById(message.steps, messageId)) { - return true; + const foundMessage = findMessageById(message.steps, messageId); + if (foundMessage) { + return foundMessage; } } } - return false; + return undefined; +}; + +const hasMessageById = (messages: IStep[], messageId: string): boolean => { + return findMessageById(messages, messageId) !== undefined; }; const updateMessageById = ( From bb29e9b4a7fb8d4a2cd43f66057745c018561d13 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Sat, 25 May 2024 11:33:20 +0200 Subject: [PATCH 03/19] wip --- backend/chainlit/server.py | 5 +- backend/chainlit/socket.py | 2 +- .../components/atoms/buttons/githubButton.tsx | 24 ++++++--- .../atoms/buttons/userButton/avatar.tsx | 53 +++++++------------ .../atoms/buttons/userButton/index.tsx | 1 - .../atoms/buttons/userButton/menu.tsx | 4 +- .../components/molecules/messages/Message.tsx | 7 +-- .../molecules/messages/Messages.tsx | 9 ++++ .../molecules/messages/ToolCall.tsx | 23 ++++++-- .../molecules/messages/ToolCalls.tsx | 5 +- .../molecules/messages/components/Avatar.tsx | 7 +-- frontend/src/components/organisms/header.tsx | 10 ++-- .../src/components/organisms/readmeButton.tsx | 2 +- .../components/organisms/sidebar/index.tsx | 10 ++-- libs/react-client/src/useChatInteract.ts | 8 +++ libs/react-client/src/utils/message.ts | 1 + 16 files changed, 103 insertions(+), 68 deletions(-) diff --git a/backend/chainlit/server.py b/backend/chainlit/server.py index 973e1a4b4d..d54353db03 100644 --- a/backend/chainlit/server.py +++ b/backend/chainlit/server.py @@ -823,7 +823,10 @@ async def get_logo(theme: Optional[Theme] = Query(Theme.light)): @app.get("/avatars/{avatar_id}") async def get_avatar(avatar_id: str): - avatar_id = avatar_id.strip().replace(" ", "_") + if avatar_id == "default": + avatar_id = config.ui.name + + avatar_id = avatar_id.strip().lower().replace(" ", "_") avatar_path = os.path.join(APP_ROOT, "public", "avatars", f"{avatar_id}.*") diff --git a/backend/chainlit/socket.py b/backend/chainlit/socket.py index 61808efe94..23a3bca34c 100644 --- a/backend/chainlit/socket.py +++ b/backend/chainlit/socket.py @@ -234,7 +234,7 @@ async def stop(sid): init_ws_context(session) await Message( - author="System", content="Task manually stopped.", disable_feedback=True + content="Task manually stopped.", disable_feedback=True ).send() if session.current_task: diff --git a/frontend/src/components/atoms/buttons/githubButton.tsx b/frontend/src/components/atoms/buttons/githubButton.tsx index db3f6ad228..8febff943a 100644 --- a/frontend/src/components/atoms/buttons/githubButton.tsx +++ b/frontend/src/components/atoms/buttons/githubButton.tsx @@ -1,23 +1,31 @@ import { useRecoilValue } from 'recoil'; -import { IconButton, IconButtonProps, Tooltip } from '@mui/material'; +import { Button, ButtonProps } from '@mui/material'; import GithubIcon from 'assets/github'; import { projectSettingsState } from 'state/project'; -interface Props extends IconButtonProps {} +interface Props extends ButtonProps {} export default function GithubButton({ ...props }: Props) { const pSettings = useRecoilValue(projectSettingsState); const href = pSettings?.ui.github; if (!href) return null; return ( - - {/* @ts-expect-error href breaks IconButton props */} - - - - + //@ts-expect-error href is not a valid prop for Button + ); } diff --git a/frontend/src/components/atoms/buttons/userButton/avatar.tsx b/frontend/src/components/atoms/buttons/userButton/avatar.tsx index 6cfddc68c8..4b1e331c8f 100644 --- a/frontend/src/components/atoms/buttons/userButton/avatar.tsx +++ b/frontend/src/components/atoms/buttons/userButton/avatar.tsx @@ -1,42 +1,29 @@ import { useAuth } from 'api/auth'; -import SettingsIcon from '@mui/icons-material/Settings'; -import { Avatar, Button, ButtonProps, Typography } from '@mui/material'; +import { Avatar, IconButton, IconButtonProps, Typography } from '@mui/material'; -export default function UserAvatar(props: ButtonProps) { +import UserIcon from 'assets/user'; + +export default function UserAvatar(props: IconButtonProps) { const { user } = useAuth(); return ( - + + )} + + ); } diff --git a/frontend/src/components/atoms/buttons/userButton/index.tsx b/frontend/src/components/atoms/buttons/userButton/index.tsx index bd266ee7e8..9a0ca0e65d 100644 --- a/frontend/src/components/atoms/buttons/userButton/index.tsx +++ b/frontend/src/components/atoms/buttons/userButton/index.tsx @@ -16,7 +16,6 @@ export default function UserButton() { return ( <> {itemsWithDivider} diff --git a/frontend/src/components/molecules/messages/Message.tsx b/frontend/src/components/molecules/messages/Message.tsx index b449af0ecc..465acd1a88 100644 --- a/frontend/src/components/molecules/messages/Message.tsx +++ b/frontend/src/components/molecules/messages/Message.tsx @@ -20,6 +20,7 @@ import ToolCalls from './ToolCalls'; interface Props { message: IStep; + showAvatar?: boolean; elements: IMessageElement[]; actions: IAction[]; indent: number; @@ -28,7 +29,7 @@ interface Props { } const Message = memo( - ({ message, elements, actions, isRunning, isLast }: Props) => { + ({ message, showAvatar, elements, actions, isRunning, isLast }: Props) => { const { highlightedMessage, defaultCollapseContent, @@ -105,9 +106,9 @@ const Message = memo( ) : ( - + - + {filtered.map((m, i) => { + const previousMessage = i > 0 ? filtered[i - 1] : undefined; + const typeIsDifferent = previousMessage?.type !== m.type; + const authorIsDifferent = + !!m.name && + !!previousMessage?.name && + previousMessage.name !== m.name; + const showAvatar = typeIsDifferent || authorIsDifferent; + const isLast = filtered.length - 1 === i; let messageRunning = isRunning === undefined ? messageContext.loading : isRunning; @@ -51,6 +59,7 @@ const Messages = memo( return ( { - return steps.find((step) => step.start && !step.end && !step.isError); - }, [steps]); + return ( + isRunning && + steps.find((step) => step.start && !step.end && !step.isError) + ); + }, [steps, isRunning]); const hasOutput = steps.some((step) => step.output); - const isError = steps.some((step) => step.isError); + const isError = steps.length ? steps[steps.length - 1].isError : false; if (!steps.length) { return null; @@ -85,7 +89,16 @@ export default function ToolCall({ steps }: Props) { ) : null} {open && ( - + `1px solid ${theme.palette.primary.main}`, + boxSizing: 'border-box', + pl: 1 + }} + > {steps .filter((step) => step.output) .map((step) => ( diff --git a/frontend/src/components/molecules/messages/ToolCalls.tsx b/frontend/src/components/molecules/messages/ToolCalls.tsx index 3e33a17435..126ede965f 100644 --- a/frontend/src/components/molecules/messages/ToolCalls.tsx +++ b/frontend/src/components/molecules/messages/ToolCalls.tsx @@ -8,6 +8,7 @@ import ToolCall from './ToolCall'; interface Props { message: IStep; + isRunning?: boolean; } function groupToolSteps(step: IStep) { @@ -46,7 +47,7 @@ function groupToolSteps(step: IStep) { return groupedSteps; } -export default function ToolCalls({ message }: Props) { +export default function ToolCalls({ message, isRunning }: Props) { const toolCalls = useMemo(() => { return message.steps ? groupToolSteps(message) : []; }, [message]); @@ -58,7 +59,7 @@ export default function ToolCalls({ message }: Props) { return ( {toolCalls.map((toolCall, index) => ( - + ))} ); diff --git a/frontend/src/components/molecules/messages/components/Avatar.tsx b/frontend/src/components/molecules/messages/components/Avatar.tsx index d1c405eda7..cbb9f258c8 100644 --- a/frontend/src/components/molecules/messages/components/Avatar.tsx +++ b/frontend/src/components/molecules/messages/components/Avatar.tsx @@ -6,11 +6,12 @@ import { apiClientState } from 'state/apiClient'; interface Props { author: string; + hide?: boolean; } -const MessageAvatar = ({ author }: Props) => { +const MessageAvatar = ({ author, hide }: Props) => { const apiClient = useRecoilValue(apiClientState); - const url = apiClient?.buildEndpoint(`/avatars/${author}`); + const url = apiClient?.buildEndpoint(`/avatars/${author || 'default'}`); return ( @@ -21,7 +22,7 @@ const MessageAvatar = ({ author }: Props) => { mt: '-2px', bgcolor: 'transparent' }} - src={url} + src={hide ? undefined : url} /> ); diff --git a/frontend/src/components/organisms/header.tsx b/frontend/src/components/organisms/header.tsx index 4b34666a42..3df8fa7d6b 100644 --- a/frontend/src/components/organisms/header.tsx +++ b/frontend/src/components/organisms/header.tsx @@ -5,6 +5,7 @@ import { Box, Stack } from '@mui/material'; import useMediaQuery from '@mui/material/useMediaQuery'; import GithubButton from 'components/atoms/buttons/githubButton'; +import UserButton from 'components/atoms/buttons/userButton'; import ChatProfiles from 'components/molecules/chatProfiles'; import NewChatButton from 'components/molecules/newChatButton'; @@ -35,10 +36,13 @@ const Header = memo(() => { {isMobile ? ( - + - ) : null} - {!isMobile ? : null} + ) : ( + + + + )} ); }); diff --git a/frontend/src/components/organisms/readmeButton.tsx b/frontend/src/components/organisms/readmeButton.tsx index b14f6bb718..2d3bd922e4 100644 --- a/frontend/src/components/organisms/readmeButton.tsx +++ b/frontend/src/components/organisms/readmeButton.tsx @@ -28,8 +28,8 @@ export default function ReadmeButton() { <> - - - - - ); - } -); - -export default ChatPromptPlayground; diff --git a/frontend/src/components/molecules/playground/editor/EditorWrapper.tsx b/frontend/src/components/molecules/playground/editor/EditorWrapper.tsx deleted file mode 100644 index d2344b4406..0000000000 --- a/frontend/src/components/molecules/playground/editor/EditorWrapper.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import merge from 'lodash/merge'; -import { grey } from 'theme'; - -import Box, { BoxProps } from '@mui/material/Box'; -import Stack, { StackProps } from '@mui/material/Stack'; -import Typography from '@mui/material/Typography'; -import { Theme, useTheme } from '@mui/material/styles'; - -import { ClipboardCopy } from 'components/atoms/ClipboardCopy'; - -interface Props { - className?: string; - clipboardValue?: string; - sx?: StackProps['sx']; - sxChildren?: BoxProps['sx']; - title?: string; -} - -export default function EditorWrapper({ - children, - className, - clipboardValue, - sx, - sxChildren, - title -}: React.PropsWithChildren) { - const theme = useTheme(); - - return ( - - - {title} - - theme.typography.fontFamily, - fontSize: '16px', - lineHeight: '24px', - padding: 3, - paddingRight: 4, - border: `1.5px solid ${theme.palette.divider}`, - borderRadius: '8px', - overflowY: 'auto', - flexGrow: 1, - caretColor: theme.palette.text.primary, - backgroundColor: theme.palette.background.paper, - '&:hover': { - borderColor: theme.palette.mode === 'light' ? grey[400] : 'white' - } - }, - sxChildren - )} - > - {clipboardValue ? ( - - - - ) : null} - {children} - - - ); -} diff --git a/frontend/src/components/molecules/playground/editor/MessageWrapper.tsx b/frontend/src/components/molecules/playground/editor/MessageWrapper.tsx deleted file mode 100644 index c6918d3734..0000000000 --- a/frontend/src/components/molecules/playground/editor/MessageWrapper.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import React, { useContext, useState } from 'react'; - -import RemoveCircleOutlineOutlined from '@mui/icons-material/RemoveCircleOutlineOutlined'; -import Box from '@mui/material/Box'; -import IconButton from '@mui/material/IconButton'; -import { SelectChangeEvent } from '@mui/material/Select'; -import Stack from '@mui/material/Stack'; -import Typography from '@mui/material/Typography'; - -import { SelectInput } from 'components/atoms/inputs'; - -import type { - GenerationMessageRole, - IChatGeneration, - IGenerationMessage -} from 'client-types/'; - -const roles = ['Assistant', 'System', 'User']; - -interface MessageWrapperProps { - canSelectRole?: boolean; - children: React.ReactElement; - index?: number; - message?: IGenerationMessage; - role?: string; - name?: string; -} - -const MessageWrapper = ({ - canSelectRole, - children, - index, - message, - role, - name -}: MessageWrapperProps): JSX.Element => { - const [showSelectRole, setShowSelectRole] = useState(false); - const { setPlayground } = useContext(PlaygroundContext); - - const onRoleSelected = (event: SelectChangeEvent) => { - const role = event.target.value as GenerationMessageRole; - - if (role) { - setPlayground((old) => ({ - ...old, - generation: { - ...old!.generation!, - messages: (old!.generation! as IChatGeneration).messages?.map( - (message, mIndex) => ({ - ...message, - ...(mIndex === index ? { role } : {}) // Update role if it's the selected message - }) - ) - } - })); - } - - setShowSelectRole(false); - }; - - const onRemove = () => { - if (index !== undefined) { - setPlayground((old) => ({ - ...old, - generation: { - ...old!.generation!, - messages: [ - ...(old!.generation! as IChatGeneration).messages!.slice(0, index), - ...(old!.generation! as IChatGeneration).messages!.slice(index + 1) - ] - } - })); - } - }; - - const roleSelect = ( - - {!showSelectRole ? ( - canSelectRole && setShowSelectRole(true)} - color="text.primary" - sx={{ - p: 1, - borderRadius: 0.5, - marginTop: 1, - cursor: canSelectRole ? 'pointer' : 'default', - fontSize: '12px', - fontWeight: 700, - width: 'fit-content', - ...(canSelectRole && { - '&:hover': { - backgroundColor: (theme) => theme.palette.divider - } - }) - }} - > - {role} - - ) : ( - setShowSelectRole(false)} - defaultOpen - items={roles.map((role) => ({ - label: role, - value: role.toLowerCase() - }))} - id="role-select" - value={message?.role} - onChange={onRoleSelected} - sx={{ width: 'fit-content' }} - iconSx={{ - px: 0, - marginRight: '2px !important' - }} - /> - )} - {name ? ( - - {name} - - ) : null} - - ); - - return ( - - `1px solid ${theme.palette.divider}`, - borderRadius: 1 - }} - /> - theme.palette.background.paper - } - }} - > - {roleSelect} - {children} - {index !== undefined ? ( - - - - - - ) : null} - - - ); -}; - -export default MessageWrapper; diff --git a/frontend/src/components/molecules/playground/editor/completion.tsx b/frontend/src/components/molecules/playground/editor/completion.tsx deleted file mode 100644 index 56223870f5..0000000000 --- a/frontend/src/components/molecules/playground/editor/completion.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import { Editor, EditorState, Modifier, SelectionState } from 'draft-js'; -import { OrderedSet } from 'immutable'; -import { useEffect, useState } from 'react'; -import { grey } from 'theme'; - -import Box from '@mui/material/Box'; -import Typography from '@mui/material/Box'; -import IconButton from '@mui/material/IconButton'; -import Stack from '@mui/material/Stack'; - -import ChevronDownIcon from 'assets/chevronDown'; -import ChevronUpIcon from 'assets/chevronUp'; - -import 'draft-js/dist/Draft.css'; - -import EditorWrapper from './EditorWrapper'; -import MessageWrapper from './MessageWrapper'; - -interface Props { - completion?: string; - chatMode?: boolean; -} - -export default function Completion({ completion, chatMode }: Props) { - const [state, setState] = useState(EditorState.createEmpty()); - const [isCompletionOpen, setCompletionOpen] = useState(true); - - useEffect(() => { - let _state = EditorState.createEmpty(); - if (completion) { - _state = insertCompletion(_state, completion); - } - - setState(_state); - setCompletionOpen(true); - }, [completion]); - - const insertCompletion = (state: EditorState, completion: string) => { - const contentState = state.getCurrentContent(); - - const blockMap = contentState.getBlockMap(); - const key = blockMap.last().getKey(); - const length = blockMap.last().getLength(); - const selection = new SelectionState({ - anchorKey: key, - anchorOffset: length, - focusKey: key, - focusOffset: length - }); - - const ncs = Modifier.insertText( - contentState, - selection, - completion, - OrderedSet.of('COMPLETION') - ); - const es = EditorState.push(state, ncs, 'insert-characters'); - return EditorState.forceSelection(es, ncs.getSelectionAfter()); - }; - - const renderEditor = () => ( - theme.palette.success.main, - '&:hover': { - borderColor: (theme) => theme.palette.success.main - } - }} - > - { - // Read only mode, force content but preserve selection - nextState = EditorState.push( - nextState, - state.getCurrentContent(), - 'insert-characters' - ); - setState(nextState); - }} - /> - - ); - - return !chatMode ? ( - - - - Completion - - setCompletionOpen(!isCompletionOpen)}> - {isCompletionOpen ? : } - - - `1px solid ${theme.palette.divider}`, - borderRadius: 1, - marginTop: 1 - }} - /> - - {renderEditor()} - - - ) : ( - {renderEditor()} - ); -} diff --git a/frontend/src/components/molecules/playground/editor/formatted.tsx b/frontend/src/components/molecules/playground/editor/formatted.tsx deleted file mode 100644 index d0c2f2b12f..0000000000 --- a/frontend/src/components/molecules/playground/editor/formatted.tsx +++ /dev/null @@ -1,391 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { - ContentState, - Editor, - EditorState, - Modifier, - SelectionState -} from 'draft-js'; -import { OrderedSet } from 'immutable'; -import isEqual from 'lodash/isEqual'; -import merge from 'lodash/merge'; -import { useContext, useRef, useState } from 'react'; -import { useIsFirstRender } from 'usehooks-ts'; - -import EditorWrapper from 'components/molecules/playground/editor/EditorWrapper'; -import { - buildEscapeReplaceRegexp, - buildTemplatePlaceholderRegexp, - escape, - validateVariablePlaceholder -} from 'components/molecules/playground/helpers/format'; - -import { useColors } from 'hooks/useColors'; - -import type { IGeneration } from 'client-types/'; - -import 'draft-js/dist/Draft.css'; - -export interface IVariable { - name: string; - styleIndex: number; - content?: string; -} - -interface Props { - template?: string; - formatted?: string; - format: string; - inputs: IGeneration['variables']; - readOnly?: boolean; - onChange?: (state: EditorState) => void; - showTitle?: boolean; - sxEditorChildren?: any; -} - -function useCustomStyleMap() { - const colors = useColors(true); - - const customStyleMap: Record> = {}; - - for (let i = 0; i < colors.length; i++) { - customStyleMap[i.toString()] = { - background: colors[i], - borderRadius: '2px', - cursor: 'pointer' - }; - } - - return customStyleMap; -} - -/* This function takes a draftjs block content and matches all escaping and interpolation - * candidates using a regexp specific to the current template format. f-string example: - * "Hello this is a {{{{variable}}}}" would match "{{{{variable}}}}". - */ -function matchToEscapeOrReplace(text: string, format: string) { - const regexp = buildEscapeReplaceRegexp(format); - const matches: RegExpExecArray[] = []; - let match: RegExpExecArray | null; - - while ((match = regexp.exec(text)) !== null) { - if (match.index > -1) { - matches.push(match); - } - } - - return matches; -} - -// This function takes a text and tries to match a variable placeholder to replace -function matchVariable(text: string, variableName: string, format: string) { - // Get the regex based on the current template format - const regex = buildTemplatePlaceholderRegexp(variableName, format); - const match = regex.exec(text); - const matchedVariable = match?.[0]; - if (matchedVariable) { - // We found a variable candidate for instance {{{{variable}}}}". - // We now need to validate that we need to replace it. - const { ok } = validateVariablePlaceholder( - variableName, - matchedVariable, - format - ); - return { match: matchedVariable, ok }; - } else { - return { match: '', ok: false }; - } -} - -function formatTemplate( - state: EditorState, - variables: IVariable[], - format: string -) { - let contentState = state.getCurrentContent(); - let nextState = state; - - // Iterate each block in the editor. - // At this point the editor content is still the template - contentState.getBlockMap().forEach((contentBlock) => { - if (!contentBlock) { - return; - } - - const key = contentBlock.getKey(); - const text = contentBlock.getText(); - - // Get the substrings of the block to escape/replace - const ssmToEscapeOrReplace = matchToEscapeOrReplace(text, format); - - // We start with escaping - - // Each escaping will change the block text length. - // We need to keep track of the length diff (offset) to keep the escaping accurate. - let escapeOffset = 0; - - const ssmToEscapeOrReplaceWithVariable = ssmToEscapeOrReplace.map((ssm) => { - const ss = ssm[0]; - - let variableFound: { variable: IVariable; match: string } | undefined = - undefined; - // Iterate each variable and try to match it. - // If there is a match, flag it for replacement later on and break. - for (const variable of variables) { - const { match, ok } = matchVariable(ss, variable.name, format); - if (ok) { - variableFound = { variable, match }; - break; - } - } - - // start index of the selection to escape, accounting for offset - const startIndex = ssm.index + escapeOffset; - // end index of the selection to scape, accounting for offset - const endIndex = startIndex + ss.length; - - // Define the selection of the template to escape - const selectionToEscape = new SelectionState({ - anchorKey: key, - anchorOffset: startIndex, - focusKey: key, - focusOffset: endIndex - }); - - // Escape the substring - const content = escape(ss, format); - - // Update the offset (new value length - old value length) - escapeOffset += content.length - ss.length; - - // Perform the replace operation - contentState = Modifier.replaceText( - contentState, - selectionToEscape, - content - ); - nextState = EditorState.push(state, contentState, 'apply-entity'); - - // Update the substring match since we just updated it - ssm[0] = content; - ssm.index = startIndex; - - return { ssm, variableFound }; - }); - - // At this point the template has been escaped - // We now perform replace operations - - // Each replace will change the block text length. - // We need to keep track of the length diff (offset) to keep the replace accurate. - let replaceOffset = 0; - - ssmToEscapeOrReplaceWithVariable.forEach(({ ssm, variableFound }) => { - if (!variableFound) { - // Nothing to replace - return; - } - - const { variable } = variableFound; - - const ss = ssm[0]; - - // It is important to preserve the selection to keep the text selectable (copy paste for instance) - const currentSelection = nextState.getSelection(); - - // We know the variable is here but we need to know the exact range to replace - // for instance {{{var1}}} was escaped to {{var1}} so we need to replace {var1} - const { localEndIndex, localStartIndex } = validateVariablePlaceholder( - variable.name, - ss, - format - ); - - // The start of the range is the - // start index of the whole variable + the local start index - // of the exact variable match + the offset - const startIndex = ssm.index + localStartIndex + replaceOffset; - - // Same for the end index - const endIndex = ssm.index + localEndIndex + replaceOffset; - - // Define the selection to replace - const selectionToHighlight = new SelectionState({ - anchorKey: key, - anchorOffset: startIndex, - focusKey: key, - focusOffset: endIndex - }); - - const content = variable.content || ''; - - // Update the offset - replaceOffset += content.length - (localEndIndex - localStartIndex); - - // Perform the replace operation - contentState = nextState.getCurrentContent(); - contentState = contentState.createEntity('TOKEN', 'SEGMENTED', variable); - const entityKey = contentState.getLastCreatedEntityKey(); - contentState = Modifier.replaceText( - contentState, - selectionToHighlight, - content, - OrderedSet.of(variable.styleIndex.toString()), - entityKey - ); - nextState = EditorState.push(nextState, contentState, 'apply-entity'); - nextState = EditorState.forceSelection(nextState, currentSelection); - }); - }); - - return nextState; -} - -function getEntityAtSelection(editorState: EditorState) { - const selectionState = editorState.getSelection(); - const selectionKey = selectionState.getStartKey(); - const contentstate = editorState.getCurrentContent(); - - // The block in which the selection starts - const block = contentstate.getBlockForKey(selectionKey); - - if (!block) { - return; - } - - // Entity key at the start selection - const entityKey = block.getEntityAt(selectionState.getStartOffset()); - if (entityKey) { - // The actual entity instance - const entityInstance = contentstate.getEntity(entityKey); - const entityInfo = { - type: entityInstance.getType(), - mutability: entityInstance.getMutability(), - data: entityInstance.getData() - }; - return entityInfo; - } -} - -export default function FormattedEditor({ - template, - formatted, - inputs, - format, - readOnly, - onChange, - showTitle = false, - sxEditorChildren -}: Props) { - const editorRef = useRef(null); - const { setVariableName, onNotification } = useContext(PlaygroundContext); - - const [state, setState] = useState(); - const [prevInputs, setPrevInputs] = useState>(); - - const customStyleMap = useCustomStyleMap(); - const isFirstRender = useIsFirstRender(); - - if (isFirstRender || !isEqual(inputs, prevInputs)) { - if (typeof template === 'string') { - inputs = inputs || {}; - - const variableNames = Object.keys(inputs); - const variables: IVariable[] = []; - - for (let i = 0; i < variableNames.length; i++) { - const variableName = variableNames[i]; - - const variableContent = inputs[variableName]; - - variables.push({ - name: variableName, - styleIndex: i, - content: variableContent - }); - } - - const sortedVariables = variables.sort( - (a, b) => b.name.length - a.name.length - ); - - const state = EditorState.createWithContent( - ContentState.createFromText(template) - ); - const nextState = formatTemplate(state, sortedVariables, format); - - setState(nextState); - } else if (typeof formatted === 'string') { - const nextState = EditorState.createWithContent( - ContentState.createFromText(formatted) - ); - setState(nextState); - } - setPrevInputs(inputs); - } - - const handleOnEditorChange = (nextState: EditorState) => { - const hasFocus = nextState.getSelection().getHasFocus(); - const isCollapsed = nextState.getSelection().isCollapsed(); - const entity = getEntityAtSelection(nextState); - if (entity && hasFocus && isCollapsed && editorRef.current) { - // Open the variable modal - setVariableName(entity.data.name); - - // If we do not blur the selection stay the same - // And we keep opening the variable - editorRef.current.blur(); - } - - if (!readOnly) { - // update editor - onChange && onChange(nextState); - } else if (state) { - const currentContent = state.getCurrentContent(); - const nextContent = nextState.getCurrentContent(); - - if (currentContent !== nextContent) { - onNotification('error', 'Formatted prompt is read only.'); - } - - // Read only mode, force content but preserve selection - nextState = EditorState.push( - nextState, - currentContent, - 'insert-characters' - ); - } - setState(nextState); - }; - - if (!state) { - return null; - } - - const title = readOnly ? 'Formatted prompt [Read Only]' : 'Formatted prompt'; - - return ( - - - - ); -} diff --git a/frontend/src/components/molecules/playground/editor/functionModal.tsx b/frontend/src/components/molecules/playground/editor/functionModal.tsx deleted file mode 100644 index 6f5e23103b..0000000000 --- a/frontend/src/components/molecules/playground/editor/functionModal.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { useFormik } from 'formik'; -import { useContext } from 'react'; -import { grey } from 'theme'; -import * as yup from 'yup'; - -import Box from '@mui/material/Box'; -import Dialog from '@mui/material/Dialog'; -import DialogActions from '@mui/material/DialogActions'; -import DialogContent from '@mui/material/DialogContent'; -import DialogTitle from '@mui/material/DialogTitle'; -import Stack from '@mui/material/Stack'; -import Typography from '@mui/material/Typography'; -import { useTheme } from '@mui/material/styles'; - -import { AccentButton } from 'components/atoms/buttons'; -import { TextInput } from 'components/atoms/inputs'; - -const FunctionModal = (): JSX.Element | null => { - const { setPlayground, playground, functionIndex, setFunctionIndex } = - useContext(PlaygroundContext); - - const theme = useTheme(); - const hasIndex = functionIndex !== undefined; - const functions = playground?.generation?.tools || []; - const fn = hasIndex ? functions[functionIndex].function : undefined; - - const updateFunction = (name: string, description: string) => { - if (functionIndex !== undefined && fn) { - const nextFn = { ...fn, name, description }; - setPlayground((old) => { - if (!old?.generation) return old; - - return { - ...old, - generation: { - ...old.generation, - tools: old.generation.tools - ? old.generation.tools.map((tool, index) => - index === functionIndex ? { ...tool, function: nextFn } : tool - ) - : undefined - } - }; - }); - setFunctionIndex(undefined); - } - }; - - const formik = useFormik({ - initialValues: { - name: fn?.name, - description: fn?.description - }, - validationSchema: yup.object({ - name: yup.string().required(), - description: yup.string().required() - }), - enableReinitialize: true, - onSubmit: async (values) => { - updateFunction(values.name!, values.description!); - } - }); - - return ( - setFunctionIndex(undefined)} - fullWidth - maxWidth="md" - sx={{ - border: (theme) => - theme.palette.mode === 'dark' ? `1px solid ${grey[800]}` : null, - borderRadius: 1 - }} - > - - - - {`Edit function ${fn?.name}`} - - - - - formik.setFieldValue('name', e.target.value)} - value={formik.values['name']} - hasError={!!formik.errors.name} - /> - - formik.setFieldValue('description', e.target.value) - } - value={formik.values['description']} - hasError={!!formik.errors.description} - /> - - - - formik.submitForm()} - > - Save - - - - - ); -}; - -export default FunctionModal; diff --git a/frontend/src/components/molecules/playground/editor/promptMessage.tsx b/frontend/src/components/molecules/playground/editor/promptMessage.tsx deleted file mode 100644 index 2a07a02cb7..0000000000 --- a/frontend/src/components/molecules/playground/editor/promptMessage.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { EditorState } from 'draft-js'; - -import Alert from '@mui/material/Alert'; -import { useTheme } from '@mui/material/styles'; - -import type { IChatGeneration, IGenerationMessage } from 'client-types/'; -import { PromptMode } from 'types/playground'; - -import MessageWrapper from './MessageWrapper'; -import FormattedEditor from './formatted'; - -interface Props { - message: IGenerationMessage; - generation: IChatGeneration; - mode: PromptMode; - index: number; - onChange: (index: number, nextState: EditorState) => void; -} - -export default function PromptMessage({ - message, - generation, - mode, - index, - onChange -}: Props) { - const theme = useTheme(); - - const templateProps = { - inputs: generation.variables || {}, - format: 'f-string', - sxEditorChildren: { - padding: theme.spacing(2), - backgroundColor: '', - '&:hover': { - background: theme.palette.background.paper - } - } - }; - - const renderFormatted = () => { - if (typeof message.content === 'string') { - return ( - onChange(index, state)} - formatted={message.content} - readOnly={false} - showTitle={false} - /> - ); - } - - return ( - - Neither template or formatted prompt provided. - - ); - }; - - return ( - - <>{mode === 'Formatted' ? renderFormatted() : null} - - ); -} diff --git a/frontend/src/components/molecules/playground/editor/template/index.tsx b/frontend/src/components/molecules/playground/editor/template/index.tsx deleted file mode 100644 index 54a797b18a..0000000000 --- a/frontend/src/components/molecules/playground/editor/template/index.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import { - CompositeDecorator, - ContentBlock, - ContentState, - DraftDecorator, - Editor, - EditorState -} from 'draft-js'; -import { useState } from 'react'; -import { useIsFirstRender } from 'usehooks-ts'; - -import EditorWrapper from 'components/molecules/playground/editor/EditorWrapper'; -import { - buildTemplatePlaceholdersRegexp, - validateVariablePlaceholder -} from 'components/molecules/playground/helpers/format'; - -import type { IGeneration } from 'client-types/'; - -import Variable from './variable'; - -const findVariable = ( - regex: RegExp | undefined, - format: string, - contentBlock: ContentBlock, - callback: (start: number, end: number) => void -) => { - if (!regex) { - return; - } - const text = contentBlock.getText(); - let matchArr: RegExpExecArray | null; - while ((matchArr = regex.exec(text)) !== null) { - const { ok, localEndIndex, localStartIndex } = validateVariablePlaceholder( - matchArr[1], - matchArr[0], - format - ); - if (!ok) { - continue; - } - const start = matchArr.index + localStartIndex; - const end = matchArr.index + localEndIndex; - callback(start, end); - } -}; - -interface Props { - inputs: IGeneration['variables']; - format: string; - template: string; - onChange(nextState: EditorState): void; - showTitle?: boolean; - sxEditorChildren?: any; -} - -export default function TemplateEditor({ - inputs, - format, - template, - onChange, - showTitle = true, - sxEditorChildren -}: Props) { - const [state, setState] = useState(); - const isFirstRender = useIsFirstRender(); - - if (isFirstRender) { - const contentState = ContentState.createFromText(template); - const variableDecorator: DraftDecorator = { - strategy: (contentBlock, callback) => { - findVariable( - buildTemplatePlaceholdersRegexp(inputs || {}, format), - format, - contentBlock, - callback - ); - }, - component: Variable - }; - - const decorators = new CompositeDecorator([variableDecorator]); - setState(EditorState.createWithContent(contentState, decorators)); - } - - if (!state) { - return null; - } - - return ( - - { - setState(nextState); - onChange && onChange(nextState); - }} - /> - - ); -} diff --git a/frontend/src/components/molecules/playground/editor/template/variable.tsx b/frontend/src/components/molecules/playground/editor/template/variable.tsx deleted file mode 100644 index 15a5318802..0000000000 --- a/frontend/src/components/molecules/playground/editor/template/variable.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import React, { useContext, useEffect, useState } from 'react'; - -import Tooltip from '@mui/material/Tooltip'; - -import { buildVariablePlaceholder } from 'components/molecules/playground/helpers/format'; - -import { useColors } from 'hooks/useColors'; - -interface Props { - decoratedText: string; -} - -function truncate(str: string, n = 200) { - return str.length > n ? str.slice(0, n - 1) + '...' : str; -} - -export default function Variable({ - children, - decoratedText -}: React.PropsWithChildren) { - const { setVariableName, playground } = useContext(PlaygroundContext); - const colors = useColors(true); - const [variableIndex, setVariableIndex] = useState(); - const [styles, setStyles] = useState({}); - - const generation = playground?.generation; - - useEffect(() => { - if (generation?.variables && decoratedText) { - const index = Object.keys(generation.variables).findIndex( - (name) => buildVariablePlaceholder(name, 'f-string') === decoratedText - ); - if (index > -1) { - setVariableIndex(index); - const colorIndex = index % (colors.length - 1); - setStyles({ - backgroundColor: colors[colorIndex], - borderRadius: '2px', - cursor: 'pointer' - }); - } - } - }, [colors, decoratedText, generation]); - - if (!generation) { - return null; - } - - const [varName, varValue] = - variableIndex !== undefined - ? Object.entries(generation.variables || {})[variableIndex] - : []; - - return ( - - setVariableName(varName)} - > - {children} - - - ); -} diff --git a/frontend/src/components/molecules/playground/editor/variableModal.tsx b/frontend/src/components/molecules/playground/editor/variableModal.tsx deleted file mode 100644 index ecf3386127..0000000000 --- a/frontend/src/components/molecules/playground/editor/variableModal.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { ContentState, Editor, EditorState } from 'draft-js'; -import { useContext, useEffect, useState } from 'react'; -import { grey } from 'theme'; - -import Alert from '@mui/material/Alert'; -import Box from '@mui/material/Box'; -import Dialog from '@mui/material/Dialog'; -import DialogActions from '@mui/material/DialogActions'; -import DialogContent from '@mui/material/DialogContent'; -import DialogTitle from '@mui/material/DialogTitle'; -import Typography from '@mui/material/Typography'; -import { useTheme } from '@mui/material/styles'; - -import { AccentButton } from 'components/atoms/buttons'; - -import EditorWrapper from './EditorWrapper'; - -const VariableModal = (): JSX.Element | null => { - const [state, setState] = useState(); - const { setPlayground, playground, variableName, setVariableName } = - useContext(PlaygroundContext); - - const theme = useTheme(); - - useEffect(() => { - if (variableName && playground?.generation?.variables) { - setState( - EditorState.createWithContent( - ContentState.createFromText( - playground.generation.variables[variableName] - ) - ) - ); - } - }, [variableName]); - - const updateVariable = () => { - if (variableName) { - setPlayground((old) => { - if (!old?.generation) return old; - - return { - ...old, - generation: { - ...old.generation, - inputs: { - ...old?.generation?.variables, - [variableName]: state?.getCurrentContent().getPlainText() || '' - } - } - }; - }); - setVariableName(undefined); - } - }; - - const resetVariableName = () => { - setVariableName(undefined); - }; - - if (!variableName) return null; - - return ( - - theme.palette.mode === 'dark' ? `1px solid ${grey[800]}` : null, - borderRadius: 1 - }} - > - - - - {`Edit ${variableName}`} - - - - - Editing a variable will update its value in the formatted view. If - you want to update the template instead, go to the template view. - - {state ? ( - - ({ - color: theme.palette.text.primary, - padding: '2px' - })} - editorState={state} - onChange={(nextState) => { - nextState && setState(nextState); - }} - /> - - ) : null} - - - - Save - - - - - ); -}; - -export default VariableModal; diff --git a/frontend/src/components/molecules/playground/functionInput.tsx b/frontend/src/components/molecules/playground/functionInput.tsx deleted file mode 100644 index d73f914334..0000000000 --- a/frontend/src/components/molecules/playground/functionInput.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { useContext } from 'react'; - -import { SelectInput } from 'components/atoms/inputs/selects/SelectInput'; - -const FunctionInput = (): JSX.Element | null => { - const { functionIndex, setFunctionIndex, playground } = - useContext(PlaygroundContext); - - const functions = playground?.generation?.tools || []; - - const options = functions.map((fn, index) => ({ - label: fn.function.name, - value: index.toString() - })); - - return functions?.length > 0 ? ( - setFunctionIndex(parseInt(e.target.value, 10))} - sx={{ maxWidth: '270px' }} - /> - ) : null; -}; - -export default FunctionInput; diff --git a/frontend/src/components/molecules/playground/header.tsx b/frontend/src/components/molecules/playground/header.tsx deleted file mode 100644 index a53edeb686..0000000000 --- a/frontend/src/components/molecules/playground/header.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { grey } from 'theme'; - -import CloseIcon from '@mui/icons-material/Close'; -import TuneIcon from '@mui/icons-material/Tune'; -import IconButton from '@mui/material/IconButton'; -import Stack from '@mui/material/Stack'; - -import { AccentButton } from 'components/atoms/buttons'; - -import FunctionInput from './functionInput'; -import VariableInput from './variableInput'; - -interface Props { - hasTemplate?: boolean; - showToggleDrawerButton?: boolean; - toggleDrawer: () => void; - handleClose: () => void; -} - -export default function PlaygroundHeader({ - showToggleDrawerButton, - toggleDrawer, - handleClose -}: Props) { - return ( - - - {/* */} - - - - - - Help - - - {showToggleDrawerButton ? ( - - - - ) : null} - - - - - - ); -} diff --git a/frontend/src/components/molecules/playground/helpers/format.ts b/frontend/src/components/molecules/playground/helpers/format.ts deleted file mode 100644 index b7e6b6755a..0000000000 --- a/frontend/src/components/molecules/playground/helpers/format.ts +++ /dev/null @@ -1,96 +0,0 @@ -// Helper function to match the placeholders for a given variable in the template -export function buildTemplatePlaceholderRegexp( - variable: string, - format: string -) { - switch (format) { - case 'f-string': { - return new RegExp(`\\{+(${variable}+)\\}+`, 'g'); - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} - -// Helper function to match the placeholders for a all variables in the template -export function buildTemplatePlaceholdersRegexp( - inputs: object, - format: string -) { - const variables = Object.keys(inputs).sort((a, b) => b.length - a.length); - if (!variables.length) { - return undefined; - } - switch (format) { - case 'f-string': { - // Create a regex pattern from the variables array - const regexPattern = variables.map((v) => `${v}`).join('|'); - return buildTemplatePlaceholderRegexp(regexPattern, format); - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} - -// Helper function to escape the template -export function escape(str: string, format: string) { - switch (format) { - case 'f-string': { - str = str.replaceAll('{{', '{'); - str = str.replaceAll('}}', '}'); - return str; - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} - -// Helper function to match all substrings to escape and or replace -export function buildEscapeReplaceRegexp(format: string) { - switch (format) { - case 'f-string': { - // Match wrapped by {} or opening or closing braces - return /\{+([^{}]+)\}+|{{|}}/g; - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} - -// Helper function to build the template placeholder of a variable -export function buildVariablePlaceholder(variable: string, format: string) { - switch (format) { - case 'f-string': { - return `{${variable}}`; - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} - -export function validateVariablePlaceholder( - variableName: string, - match: string, - format: string -) { - switch (format) { - case 'f-string': { - // leading curly braces - const prefixBracesCount = match.split(variableName)[0].length; - // tailing curly braces - const suffixBracesCount = match.split(variableName)[1].length; - const isOdd = prefixBracesCount % 2; - const ok = isOdd && prefixBracesCount === suffixBracesCount; - const placeholder = buildVariablePlaceholder(variableName, format); - const localStartIndex = match.indexOf(placeholder); - const localEndIndex = localStartIndex + placeholder.length; - return { - ok, - localStartIndex, - localEndIndex - }; - } - default: - throw new Error(`Unsupported template format ${format}`); - } -} diff --git a/frontend/src/components/molecules/playground/helpers/provider.ts b/frontend/src/components/molecules/playground/helpers/provider.ts deleted file mode 100644 index 8ba9b5a0f6..0000000000 --- a/frontend/src/components/molecules/playground/helpers/provider.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ILLMProvider, IPlayground } from 'types/playground'; - -const getProviders = (playground: IPlayground) => { - const providers = playground?.providers || []; - - if (!providers?.length) { - throw new Error('No LLM provider available'); - } - - let provider = providers.find( - (provider) => provider.id === playground.generation?.provider - ); - - const providerFound = !!provider; - - provider = provider || providers[0]; - - return { - provider, - providerFound, - providers - }; -}; - -const getDefaultSettings = (providerId: string, providers?: ILLMProvider[]) => { - if (!providers || providers.length === 0) return {}; - - const defaultSettings: { [key: string]: any } = {}; - const provider = providers?.find((provider) => provider.id === providerId); - - provider?.inputs?.forEach( - (input) => (defaultSettings[input.id] = input.initial) - ); - - return defaultSettings; -}; - -export { getDefaultSettings, getProviders }; diff --git a/frontend/src/components/molecules/playground/index.tsx b/frontend/src/components/molecules/playground/index.tsx deleted file mode 100644 index d5e9bf62c8..0000000000 --- a/frontend/src/components/molecules/playground/index.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { useContext, useRef, useState } from 'react'; -import { useToggle } from 'usehooks-ts'; - -import RestoreIcon from '@mui/icons-material/Restore'; -import { Chip } from '@mui/material'; -import Dialog from '@mui/material/Dialog'; -import DialogContent from '@mui/material/DialogContent'; -import DialogTitle from '@mui/material/DialogTitle'; -import IconButton from '@mui/material/IconButton'; -import Stack from '@mui/material/Stack'; -import Tooltip from '@mui/material/Tooltip'; -import { useTheme } from '@mui/material/styles'; -import useMediaQuery from '@mui/material/useMediaQuery'; - -import { ErrorBoundary } from 'components/atoms/ErrorBoundary'; - -import { IPlayground } from 'types/playground'; -import { IPlaygroundContext } from 'types/playgroundContext'; - -import ActionBar from './actionBar'; -import BasicPromptPlayground from './basic'; -import ChatPromptPlayground from './chat'; -import FunctionModal from './editor/functionModal'; -import VariableModal from './editor/variableModal'; -import PlaygroundHeader from './header'; -import ModelSettings from './modelSettings'; -import SubmitButton from './submitButton'; - -interface Props { - context: IPlaygroundContext; -} - -function _PromptPlayground() { - const { playground, setPlayground } = useContext(PlaygroundContext); - const [restoredTime, setRestoredTime] = useState(0); - const [isDrawerOpen, toggleDrawer] = useToggle(false); - const chatPromptScrollRef = useRef(null); - - const theme = useTheme(); - const isSmallScreen = useMediaQuery(theme.breakpoints.down('md')); - - const showToggleDrawerButton = isSmallScreen && !!playground?.providers; - - const restore = () => { - if (playground?.generation) { - setPlayground((old?: IPlayground) => ({ - ...old, - generation: old?.originalGeneration - })); - setRestoredTime((old) => old + 1); - } - }; - - const handleClose = () => { - setPlayground((old) => ({ - ...old, - generation: undefined, - originalGeneration: undefined - })); - }; - - const generation = playground?.generation; - - const isChat = generation?.type === 'CHAT'; - - const hasTemplate = false; - - if (!generation) { - return null; - } - - return ( - - - - - - - - - - - {isChat ? ( - - ) : ( - - )} - - - - - - - - {generation.tokenCount ? ( - - ) : null} - - - - - - { - if (!chatPromptScrollRef?.current) return; - - chatPromptScrollRef.current.scrollTop = - chatPromptScrollRef.current.scrollHeight; - }} - /> - - - ); -} - -const PromptPlayground = ({ context }: Props) => { - return ( - - <_PromptPlayground /> - - ); -}; - -export { PromptPlayground }; diff --git a/frontend/src/components/molecules/playground/modeToggle.tsx b/frontend/src/components/molecules/playground/modeToggle.tsx deleted file mode 100644 index 818a0c6312..0000000000 --- a/frontend/src/components/molecules/playground/modeToggle.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { useContext } from 'react'; - -import Tooltip from '@mui/material/Tooltip'; - -import { Toggle } from 'components/atoms/buttons'; - -import { PromptMode } from 'types/playground'; - -interface Props { - hasTemplate?: boolean; -} -export default function PromptModeToggle({ hasTemplate }: Props) { - const { setPromptMode, promptMode } = useContext(PlaygroundContext); - const disabled = !hasTemplate; - - const toggle = ( - setPromptMode(v as PromptMode)} - /> - ); - - if (disabled) { - return ( - - {toggle} - - ); - } else { - return toggle; - } -} diff --git a/frontend/src/components/molecules/playground/modelSettings.tsx b/frontend/src/components/molecules/playground/modelSettings.tsx deleted file mode 100644 index 9a1029eae5..0000000000 --- a/frontend/src/components/molecules/playground/modelSettings.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import { useFormik } from 'formik'; -import cloneDeep from 'lodash/cloneDeep'; -import merge from 'lodash/merge'; -import { useContext, useEffect } from 'react'; -import * as yup from 'yup'; - -import ChevronRightIcon from '@mui/icons-material/ChevronRight'; -import Alert from '@mui/material/Alert'; -import Box from '@mui/material/Box'; -import Drawer from '@mui/material/Drawer'; -import IconButton from '@mui/material/IconButton'; -import { SelectChangeEvent } from '@mui/material/Select'; -import Stack from '@mui/material/Stack'; -import Typography from '@mui/material/Typography'; - -import { FormInput, SelectInput, TFormInput } from 'components/atoms/inputs'; -import { getProviders } from 'components/molecules/playground/helpers/provider'; - -import type { ILLMSettings } from 'client-types/'; -import { ILLMProvider } from 'types/playground'; - -type Schema = { - [key: string]: yup.Schema; -}; - -interface IFormProps { - settings: ILLMSettings; - schema: Schema; - provider: ILLMProvider; - providers: ILLMProvider[]; - providerWarning: JSX.Element | null; - providerTooltip?: string; -} - -const SettingsForm = ({ - settings, - schema, - provider, - providers, - providerTooltip, - providerWarning -}: IFormProps) => { - const { setPlayground } = useContext(PlaygroundContext); - - const formik = useFormik({ - initialValues: settings, - validationSchema: schema, - enableReinitialize: true, - onSubmit: async () => undefined - }); - - useEffect(() => { - const debounceTimeout = setTimeout(() => { - setPlayground((old) => ({ - ...old, - generation: { - ...old!.generation!, - settings: formik.values - } - })); - }, 500); - - return () => { - clearTimeout(debounceTimeout); - }; - }, [formik.values]); - - const onSelectedProviderChange = (event: SelectChangeEvent) => { - setPlayground((old) => - merge(cloneDeep(old), { - generation: { - provider: event.target.value - } - }) - ); - }; - - return ( - - - Settings - - - ({ - label: provider.name, - value: provider.id - }))} - id="llm-providers" - value={provider.id} - label="LLM Provider" - tooltip={providerTooltip} - onChange={onSelectedProviderChange} - /> - {providerWarning} - {provider.inputs.map((input: TFormInput, index: number) => ( - - - - ))} - - - ); -}; - -const ModelSettings = () => { - const { playground } = useContext(PlaygroundContext); - - if (!playground || !playground?.providers) { - return null; - } - - const { provider, providerFound, providers } = getProviders(playground); - - if (!provider) { - return null; - } - - const buildProviderTooltip = () => { - if (provider.is_chat && playground.generation?.type !== 'CHAT') { - return `${provider.name} is chat-based. This prompt will be wrapped in a message before being sent to ${provider.name}.`; - } else if (!provider.is_chat && playground.generation?.type === 'CHAT') { - return `${provider.name} is completion-based. The messages will converted to a single prompt before being sent to ${provider.name}.`; - } else { - return undefined; - } - }; - - const providerWarning = !providerFound ? ( - - {playground.generation?.provider - ? `${playground?.generation?.provider} provider is not found, using - ${provider.name} instead.` - : `Provider not specified, using ${provider.name} instead.`} - - ) : null; - - const settings: ILLMSettings = {}; - const currentSettings = playground?.generation?.settings || {}; - const origSettings = playground?.originalGeneration?.settings || {}; - - const isSettingCompatible = ( - value: string | number | boolean | string[], - input: TFormInput - ) => { - if (input.type === 'select') { - return !!input?.items?.find((i) => i.value === value); - } - return true; - }; - - const schema = yup.object( - provider.inputs.reduce((object: Schema, input: TFormInput) => { - const settingValue = - currentSettings[input.id] !== undefined - ? currentSettings[input.id] - : origSettings[input.id]; - - if ( - settingValue !== undefined && - isSettingCompatible(settingValue, input) - ) { - settings[input.id] = settingValue; - } else if (input.initial !== undefined) { - settings[input.id] = input.initial; - } - - switch (input.type) { - case 'select': - object[input.id] = yup.string(); - break; - case 'slider': { - let schema = yup.number(); - if (input.min) { - schema = schema.min(input.min); - } - if (input.max) { - schema = schema.max(input.max); - } - object[input.id] = schema; - break; - } - case 'tags': - object[input.id] = yup.array().of(yup.string()); - break; - } - - return object; - }, {}) - ); - - return ( - - ); -}; - -interface Props { - isSmallScreen: boolean; - isDrawerOpen: boolean; - toggleDrawer: () => void; -} - -export default function ResponsiveModelSettings({ - isSmallScreen, - isDrawerOpen, - toggleDrawer -}: Props) { - return !isSmallScreen ? ( - - - - ) : ( - - - - - - - - - - - ); -} diff --git a/frontend/src/components/molecules/playground/submitButton.tsx b/frontend/src/components/molecules/playground/submitButton.tsx deleted file mode 100644 index 8941d0d0ac..0000000000 --- a/frontend/src/components/molecules/playground/submitButton.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import cloneDeep from 'lodash/cloneDeep'; -import { useContext, useState } from 'react'; - -import { AccentButton, RegularButton } from 'components/atoms/buttons'; -import { getProviders } from 'components/molecules/playground/helpers/provider'; - -export default function SubmitButton({ onSubmit }: { onSubmit: () => void }) { - const [completionController, setCompletionController] = useState< - AbortController | undefined - >(); - const { playground, setPlayground, createCompletion } = - useContext(PlaygroundContext); - - if (!playground || !playground.providers || !createCompletion) { - return null; - } - - const submit = async () => { - try { - const { provider } = getProviders(playground); - const generation = cloneDeep(playground.generation)!; - generation.provider = provider.id; - const controller = new AbortController(); - - setCompletionController(controller); - setPlayground((old) => { - if (!old?.generation) return old; - - if (old.generation.type === 'CHAT') { - return { - ...old, - generation: { - ...old.generation!, - messageCompletion: { - ...(old.generation?.messageCompletion || { role: 'assistant' }), - content: '' - } - } - }; - } else { - return { - ...old, - generation: { - ...old.generation!, - completion: '' - } - }; - } - }); - - await createCompletion( - generation, - controller, - (done: boolean, token: string) => { - onSubmit && onSubmit(); - - if (done) { - setCompletionController(undefined); - return; - } - setPlayground((old) => { - if (!old?.generation) return old; - if (old.generation.type === 'CHAT') { - return { - ...old, - generation: { - ...old.generation!, - messageCompletion: { - ...(old.generation?.messageCompletion || { - role: 'assistant' - }), - content: - (old.generation?.messageCompletion?.content || '') + token - } - } - }; - } else { - return { - ...old, - generation: { - ...old.generation!, - completion: (old.generation?.completion || '') + token - } - }; - } - }); - } - ); - } catch (err) { - setCompletionController(undefined); - } - }; - - if (completionController) { - return ( - { - completionController.abort(); - setCompletionController(undefined); - }} - > - Cancel - - ); - } else { - return ( - - Submit - - ); - } -} diff --git a/frontend/src/components/molecules/playground/variableInput.tsx b/frontend/src/components/molecules/playground/variableInput.tsx deleted file mode 100644 index 091f50e9fb..0000000000 --- a/frontend/src/components/molecules/playground/variableInput.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { PlaygroundContext } from 'contexts/PlaygroundContext'; -import map from 'lodash/map'; -import { useContext } from 'react'; - -import { SelectInput } from 'components/atoms/inputs/selects/SelectInput'; - -const VariableInput = (): JSX.Element | null => { - const { variableName, setVariableName, playground } = - useContext(PlaygroundContext); - - const variables = map(playground?.generation?.variables, (input, index) => ({ - label: index, - value: index - })); - - return variables?.length > 0 ? ( - setVariableName(e.target.value)} - sx={{ maxWidth: '270px' }} - /> - ) : null; -}; - -export default VariableInput; diff --git a/frontend/src/components/organisms/chat/Messages/container.tsx b/frontend/src/components/organisms/chat/Messages/container.tsx index b813bb202b..f2366f7c07 100644 --- a/frontend/src/components/organisms/chat/Messages/container.tsx +++ b/frontend/src/components/organisms/chat/Messages/container.tsx @@ -7,10 +7,8 @@ import { IAction, IAsk, IFeedback, - IFunction, IMessageElement, IStep, - ITool, useChatInteract } from '@chainlit/react-client'; import { sideViewState } from '@chainlit/react-client'; @@ -18,7 +16,6 @@ import { sideViewState } from '@chainlit/react-client'; import { MessageContainer as CMessageContainer } from 'components/molecules/messages/MessageContainer'; import { apiClientState } from 'state/apiClient'; -import { playgroundState } from 'state/playground'; import { highlightMessage } from 'state/project'; import { projectSettingsState } from 'state/project'; import { settingsState } from 'state/settings'; @@ -59,7 +56,6 @@ const MessageContainer = memo( }: Props) => { const appSettings = useRecoilValue(settingsState); const projectSettings = useRecoilValue(projectSettingsState); - const setPlayground = useSetRecoilState(playgroundState); const setSideView = useSetRecoilState(sideViewState); const highlightedMessage = useRecoilValue(highlightMessage); const { uploadFile: _uploadFile } = useChatInteract(); @@ -76,42 +72,6 @@ const MessageContainer = memo( const navigate = useNavigate(); - const onPlaygroundButtonClick = useCallback( - (message: IStep) => { - setPlayground((old) => { - const generation = message.generation; - let functions = - (generation?.settings?.functions as unknown as IFunction[]) || []; - const tools = - (generation?.settings?.tools as unknown as ITool[]) || []; - if (tools.length) { - functions = [ - ...functions, - ...tools - .filter((t) => t.type === 'function') - .map((t) => t.function) - ]; - } - return { - ...old, - generation: generation - ? { - ...generation, - functions - } - : undefined, - originalGeneration: generation - ? { - ...generation, - functions - } - : undefined - }; - }); - }, - [setPlayground] - ); - const onElementRefClick = useCallback( (element: IMessageElement) => { let path = `/element/${element.id}`; @@ -165,8 +125,7 @@ const MessageContainer = memo( onElementRefClick, onError, onFeedbackUpdated, - onFeedbackDeleted, - onPlaygroundButtonClick + onFeedbackDeleted }; }, [ appSettings.defaultCollapseContent, @@ -178,8 +137,7 @@ const MessageContainer = memo( projectSettings?.features?.unsafe_allow_html, onElementRefClick, onError, - onFeedbackUpdated, - onPlaygroundButtonClick + onFeedbackUpdated ]); return ( diff --git a/frontend/src/components/organisms/chat/Messages/index.tsx b/frontend/src/components/organisms/chat/Messages/index.tsx index 3cc13192ef..2a70513200 100644 --- a/frontend/src/components/organisms/chat/Messages/index.tsx +++ b/frontend/src/components/organisms/chat/Messages/index.tsx @@ -11,8 +11,7 @@ import { updateMessageById, useChatData, useChatInteract, - useChatMessages, - useChatSession + useChatMessages } from '@chainlit/react-client'; import { useTranslation } from 'components/i18n/Translator'; @@ -21,7 +20,6 @@ import { apiClientState } from 'state/apiClient'; import { IProjectSettings } from 'state/project'; import MessageContainer from './container'; -import WelcomeScreen from './welcomeScreen'; interface MessagesProps { autoScroll: boolean; @@ -31,13 +29,11 @@ interface MessagesProps { const Messages = ({ autoScroll, - projectSettings, setAutoScroll }: MessagesProps): JSX.Element => { const { elements, askUser, loading, actions } = useChatData(); const { messages } = useChatMessages(); const { callAction } = useChatInteract(); - const { idToResume } = useChatSession(); const accessToken = useRecoilValue(accessTokenState); const setMessages = useSetRecoilState(messagesState); const apiClient = useRecoilValue(apiClientState); @@ -135,16 +131,7 @@ const Messages = ({ [] ); - return !idToResume && - !messages.length && - projectSettings?.ui.show_readme_as_default ? ( - - ) : ( + return ( { const { user } = useAuth(); @@ -231,11 +232,15 @@ const Chat = () => { ) : null} - + + + + + { const { loading } = useChatData(); + const { firstInteraction } = useChatMessages(); const { stopTask } = useChatInteract(); const handleClick = () => { @@ -28,24 +33,24 @@ const SubmitButton = ({ disabled, onSubmit }: SubmitButtonProps) => { color: 'text.secondary' }} > - {!loading ? ( + {loading && firstInteraction ? ( + } > - - + + ) : ( + } > - - + + )} diff --git a/frontend/src/components/organisms/chat/welcomeScreen/index.tsx b/frontend/src/components/organisms/chat/welcomeScreen/index.tsx new file mode 100644 index 0000000000..76b0c71e80 --- /dev/null +++ b/frontend/src/components/organisms/chat/welcomeScreen/index.tsx @@ -0,0 +1,108 @@ +import { useEffect, useMemo, useState } from 'react'; +import { useRecoilValue } from 'recoil'; + +import { Avatar, Grid, Stack, Typography } from '@mui/material'; +import Fade from '@mui/material/Fade'; + +import { useChatMessages, useChatSession } from '@chainlit/react-client'; + +import { Logo } from 'components/atoms/logo'; + +import { useLayoutMaxWidth } from 'hooks/useLayoutMaxWidth'; + +import { projectSettingsState } from 'state/project'; + +import Starter from './starter'; + +interface Props { + hideLogo?: boolean; +} + +export default function WelcomeScreen({ hideLogo }: Props) { + const maxWidth = useLayoutMaxWidth(); + const { messages } = useChatMessages(); + const [show, setShow] = useState(true); + const { chatProfile } = useChatSession(); + const pSettings = useRecoilValue(projectSettingsState); + + useEffect(() => { + if (messages.length > 0) { + setShow(false); + } else { + setShow(true); + } + }, [messages]); + + const logo = useMemo(() => { + if (chatProfile) { + const selectedChatProfile = pSettings?.chatProfiles.find( + (profile) => profile.name === chatProfile + ); + if (selectedChatProfile?.icon) { + return ( + + + + {selectedChatProfile.name} + + + ); + } + } + return ; + }, [pSettings, chatProfile]); + + const starters = useMemo(() => { + if (chatProfile) { + const selectedChatProfile = pSettings?.chatProfiles.find( + (profile) => profile.name === chatProfile + ); + if (selectedChatProfile?.starters) { + return selectedChatProfile.starters.slice(0, 4); + } + } + return pSettings?.starters; + }, [pSettings, chatProfile]); + + if (!starters?.length) { + return null; + } + + return ( + + + {hideLogo ? null : {logo}} + + {starters?.map((starter, i) => ( + + + + + + ))} + + + + ); +} diff --git a/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx b/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx new file mode 100644 index 0000000000..636b97107a --- /dev/null +++ b/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx @@ -0,0 +1,78 @@ +import { useAuth } from 'api/auth'; +import { useCallback } from 'react'; +import { v4 as uuidv4 } from 'uuid'; + +import { Box, Button, Stack, Typography } from '@mui/material'; + +import { IStep, useChatData } from '@chainlit/react-client'; +import { useChatInteract } from '@chainlit/react-client'; + +import type { IStarter } from 'state/project'; + +interface Props { + starter: IStarter; +} + +export default function Starter({ starter }: Props) { + const { sendMessage } = useChatInteract(); + const { loading } = useChatData(); + const { user } = useAuth(); + + const onSubmit = useCallback(async () => { + const message: IStep = { + threadId: '', + id: uuidv4(), + name: user?.identifier || 'User', + type: 'user_message', + output: starter.message, + createdAt: new Date().toISOString() + }; + + sendMessage(message, []); + }, [user, sendMessage, starter]); + + return ( + + ); +} diff --git a/frontend/src/components/organisms/header.tsx b/frontend/src/components/organisms/header.tsx index 3df8fa7d6b..43750fed9b 100644 --- a/frontend/src/components/organisms/header.tsx +++ b/frontend/src/components/organisms/header.tsx @@ -4,7 +4,6 @@ import { useRecoilValue } from 'recoil'; import { Box, Stack } from '@mui/material'; import useMediaQuery from '@mui/material/useMediaQuery'; -import GithubButton from 'components/atoms/buttons/githubButton'; import UserButton from 'components/atoms/buttons/userButton'; import ChatProfiles from 'components/molecules/chatProfiles'; import NewChatButton from 'components/molecules/newChatButton'; diff --git a/frontend/src/components/organisms/playground/index.tsx b/frontend/src/components/organisms/playground/index.tsx deleted file mode 100644 index 50621478eb..0000000000 --- a/frontend/src/components/organisms/playground/index.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { useCallback } from 'react'; -import { useRecoilState, useRecoilValue } from 'recoil'; -import { toast } from 'sonner'; -import { IPlaygroundContext } from 'types'; - -import { IGeneration, accessTokenState } from '@chainlit/react-client'; - -import { PromptPlayground } from 'components/molecules/playground'; - -import { useLLMProviders } from 'hooks/useLLMProviders'; - -import { apiClientState } from 'state/apiClient'; -import { - functionState, - modeState, - playgroundState, - variableState -} from 'state/playground'; -import { userEnvState } from 'state/user'; - -export default function PlaygroundWrapper() { - const accessToken = useRecoilValue(accessTokenState); - const userEnv = useRecoilValue(userEnvState); - const [variableName, setVariableName] = useRecoilState(variableState); - const [functionIndex, setFunctionIndex] = useRecoilState(functionState); - const [playground, setPlayground] = useRecoilState(playgroundState); - const [promptMode, setPromptMode] = useRecoilState(modeState); - const apiClient = useRecoilValue(apiClientState); - - const shoulFetchProviders = - playground?.generation && !playground?.providers?.length; - - useLLMProviders(shoulFetchProviders); - - const onNotification: IPlaygroundContext['onNotification'] = useCallback( - (type, content) => { - switch (type) { - case 'error': - toast.error(content); - return; - case 'success': - toast.success(content); - return; - default: - return; - } - }, - [] - ); - - const createCompletion = useCallback( - ( - generation: IGeneration, - controller: AbortController, - cb: (done: boolean, token: string) => void - ) => { - return apiClient.getGeneration( - generation, - userEnv, - controller, - accessToken, - cb - ); - }, - [accessToken] - ); - - return ( - - ); -} diff --git a/frontend/src/components/organisms/chat/Messages/welcomeScreen.tsx b/frontend/src/components/organisms/readme.tsx similarity index 82% rename from frontend/src/components/organisms/chat/Messages/welcomeScreen.tsx rename to frontend/src/components/organisms/readme.tsx index 25f4aab58d..0bd059c4e1 100644 --- a/frontend/src/components/organisms/chat/Messages/welcomeScreen.tsx +++ b/frontend/src/components/organisms/readme.tsx @@ -6,17 +6,15 @@ import { Markdown } from 'components/molecules/Markdown'; import { useLayoutMaxWidth } from 'hooks/useLayoutMaxWidth'; -const WelcomeScreen = memo( +const Readme = memo( ({ markdown, allowHtml, - latex, - variant + latex }: { markdown?: string; allowHtml?: boolean; latex?: boolean; - variant: 'app' | 'copilot'; }) => { const layoutMaxWidth = useLayoutMaxWidth(); @@ -27,13 +25,11 @@ const WelcomeScreen = memo( - undefined, uiName: '' diff --git a/frontend/src/contexts/PlaygroundContext.tsx b/frontend/src/contexts/PlaygroundContext.tsx deleted file mode 100644 index 86f65688e8..0000000000 --- a/frontend/src/contexts/PlaygroundContext.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { createContext } from 'react'; - -import { IPlaygroundContext } from 'types/playgroundContext'; - -const defaultPlaygroundContext: IPlaygroundContext = { - setVariableName: () => undefined, - setFunctionIndex: () => undefined, - setPromptMode: () => undefined, - setPlayground: () => undefined, - onNotification: () => undefined, - promptMode: 'Formatted' -}; - -const PlaygroundContext = createContext( - defaultPlaygroundContext -); - -export { PlaygroundContext, defaultPlaygroundContext }; diff --git a/frontend/src/hooks/index.ts b/frontend/src/hooks/index.ts index 79e3ddec44..7b2443e0d6 100644 --- a/frontend/src/hooks/index.ts +++ b/frontend/src/hooks/index.ts @@ -1,3 +1,2 @@ -export { useColors } from './useColors'; export { useIsDarkMode } from './useIsDarkMode'; export { useUpload } from './useUpload'; diff --git a/frontend/src/hooks/useColors.tsx b/frontend/src/hooks/useColors.tsx deleted file mode 100644 index 001ae516a4..0000000000 --- a/frontend/src/hooks/useColors.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useCallback } from 'react'; - -import { useIsDarkMode } from './useIsDarkMode'; - -const darkColors = [ - '#fb923c', - '#facc15', - '#34d399', - '#38bdf8', - '#818cf8', - '#c084fc', - '#f472b6', - '#0ea5e9' -]; - -const lightColors = [ - '#ea580c', - '#ca8a04', - '#059669', - '#0284c7', - '#4f46e5', - '#9333ea', - '#db2777', - '#2563eb' -]; - -const hashCode = (str: string) => { - const arr = str.split(''); - return arr.reduce( - (hashCode, currentVal) => - (hashCode = - currentVal.charCodeAt(0) + - (hashCode << 6) + - (hashCode << 16) - - hashCode), - 0 - ); -}; - -const useColors = (inverted?: boolean) => { - const isDarkMode = useIsDarkMode(); - let colors = isDarkMode ? darkColors : lightColors; - - if (inverted) { - if (colors === darkColors) { - colors = lightColors; - } else { - colors = darkColors; - } - } - return colors; -}; - -const useColorForName = (uiName: string) => { - const colors = useColors(); - - return useCallback( - (name: string, isUser?: boolean, isError?: boolean) => { - if (isError) { - return 'error.main'; - } - if (name === uiName) { - return 'primary.main'; - } - if (isUser) { - return 'text.primary'; - } - const index = Math.abs(hashCode(name)) % colors.length; - return colors[index]; - }, - [uiName] - ); -}; - -export { useColorForName, useColors }; diff --git a/frontend/src/hooks/useLLMProviders.ts b/frontend/src/hooks/useLLMProviders.ts deleted file mode 100644 index 5383ce7151..0000000000 --- a/frontend/src/hooks/useLLMProviders.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { useEffect } from 'react'; -import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { toast } from 'sonner'; - -import { useApi } from '@chainlit/react-client'; - -import { useTranslation } from 'components/i18n/Translator'; - -import { apiClientState } from 'state/apiClient'; -import { playgroundState } from 'state/playground'; - -import { IPlayground } from 'types/playground'; - -const useLLMProviders = (shouldFetch?: boolean) => { - const apiClient = useRecoilValue(apiClientState); - - const { data, error } = useApi( - apiClient, - shouldFetch ? '/project/llm-providers' : null - ); - const setPlayground = useSetRecoilState(playgroundState); - - const { t } = useTranslation(); - - useEffect(() => { - if (error) { - toast.error( - `${t('hooks.useLLMProviders.failedToFetchProviders')} ${error}` - ); - } - if (!data) return; - setPlayground((old) => ({ ...old, providers: data.providers })); - }, [data, error]); - - return null; -}; - -export { useLLMProviders }; diff --git a/frontend/src/pages/ResumeButton.tsx b/frontend/src/pages/ResumeButton.tsx index e9a6b11990..c86119178d 100644 --- a/frontend/src/pages/ResumeButton.tsx +++ b/frontend/src/pages/ResumeButton.tsx @@ -1,10 +1,11 @@ +import { useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { useRecoilValue } from 'recoil'; import { toast } from 'sonner'; import { Box, Button } from '@mui/material'; -import { useChatInteract } from '@chainlit/react-client'; +import { useChatInteract, useChatSession } from '@chainlit/react-client'; import { Translator } from 'components/i18n'; import WaterMark from 'components/organisms/chat/inputBox/waterMark'; @@ -22,6 +23,18 @@ export default function ResumeButton({ threadId }: Props) { const layoutMaxWidth = useLayoutMaxWidth(); const pSettings = useRecoilValue(projectSettingsState); const { clear, setIdToResume } = useChatInteract(); + const { session, idToResume } = useChatSession(); + + useEffect(() => { + if (threadId !== idToResume) { + return; + } + if (session?.socket.connected) { + toast.success('Chat resumed successfully'); + } else if (session?.error) { + toast.error("Couldn't resume chat"); + } + }, [session, idToResume, threadId]); if (!threadId || !pSettings?.threadResumable) { return null; @@ -30,7 +43,6 @@ export default function ResumeButton({ threadId }: Props) { const onClick = () => { clear(); setIdToResume(threadId!); - toast.success('Chat resumed!'); if (!pSettings?.dataPersistence) { navigate('/'); } diff --git a/frontend/src/state/playground.ts b/frontend/src/state/playground.ts deleted file mode 100644 index d5f39ba35b..0000000000 --- a/frontend/src/state/playground.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { atom } from 'recoil'; - -import { IPlayground, PromptMode } from 'types/playground'; - -export const playgroundState = atom({ - key: 'Playground', - default: undefined -}); - -export const variableState = atom({ - key: 'PlaygroundVariable', - default: undefined -}); - -export const functionState = atom({ - key: 'PlaygroundFunction', - default: undefined -}); - -export const modeState = atom({ - key: 'PlaygroundMode', - default: 'Formatted' -}); diff --git a/frontend/src/state/project.ts b/frontend/src/state/project.ts index e3013aa722..e197d09f18 100644 --- a/frontend/src/state/project.ts +++ b/frontend/src/state/project.ts @@ -2,18 +2,24 @@ import { atom } from 'recoil'; import { IStep } from '@chainlit/react-client'; +export interface IStarter { + title: string; + message: string; + icon?: string; +} + export interface ChatProfile { default: boolean; - icon: string; + icon?: string; name: string; markdown_description: string; + starters?: IStarter[]; } export interface IProjectSettings { markdown?: string; ui: { name: string; - show_readme_as_default?: boolean; description?: string; default_collapse_content?: boolean; github?: string; @@ -47,6 +53,7 @@ export interface IProjectSettings { dataPersistence: boolean; threadResumable: boolean; chatProfiles: ChatProfile[]; + starters?: IStarter[]; translation: object; } diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 0508b0e87c..15824af1a2 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -1,5 +1,3 @@ export * from './Input'; export * from './messageContext'; export * from './NotificationCount'; -export * from './playground'; -export * from './playgroundContext'; diff --git a/frontend/src/types/messageContext.ts b/frontend/src/types/messageContext.ts index e9c993f868..cd88a86255 100644 --- a/frontend/src/types/messageContext.ts +++ b/frontend/src/types/messageContext.ts @@ -19,7 +19,6 @@ interface IMessageContext { uiName: string; allowHtml?: boolean; latex?: boolean; - onPlaygroundButtonClick?: (step: IStep) => void; onElementRefClick?: (element: IMessageElement) => void; onFeedbackUpdated?: ( message: IStep, diff --git a/frontend/src/types/playground.ts b/frontend/src/types/playground.ts deleted file mode 100644 index d8f858fd05..0000000000 --- a/frontend/src/types/playground.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { TFormInput } from 'components/atoms/inputs'; - -import type { IGeneration } from 'client-types/'; - -export interface ILLMProvider { - id: string; - inputs: TFormInput[]; - name: string; - settings: ILLMProviderSettings; - is_chat: boolean; -} - -export interface ILLMProviderSettings { - settings: { - $schema: string; - $ref: string; - definitions: { - settingsSchema: { - type: string; - Properties: Record; - }; - }; - }; -} - -export type PromptMode = 'Formatted'; - -export interface IPlayground { - providers?: ILLMProvider[]; - generation?: IGeneration; - originalGeneration?: IGeneration; -} diff --git a/frontend/src/types/playgroundContext.ts b/frontend/src/types/playgroundContext.ts deleted file mode 100644 index bed7c0c52e..0000000000 --- a/frontend/src/types/playgroundContext.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { IGeneration } from 'client-types/'; - -import { IPlayground, PromptMode } from './playground'; - -interface IPlaygroundContext { - variableName?: string; - setVariableName: ( - name?: string | ((name?: string) => string | undefined) - ) => void; - functionIndex?: number; - setFunctionIndex: ( - index?: number | ((index?: number) => number | undefined) - ) => void; - promptMode: PromptMode; - setPromptMode: ( - mode: PromptMode | ((mode: PromptMode) => PromptMode) - ) => void; - setPlayground: ( - playground?: - | IPlayground - | ((playground?: IPlayground) => IPlayground | undefined) - ) => void; - playground?: IPlayground; - onNotification: (type: 'success' | 'error', content: string) => void; - createCompletion?: ( - generation: IGeneration, - controller: AbortController, - cb: (done: boolean, token: string) => void - ) => Promise; -} - -export type { IPlaygroundContext }; diff --git a/libs/copilot/src/app.tsx b/libs/copilot/src/app.tsx index 1a73928c39..214db7d97b 100644 --- a/libs/copilot/src/app.tsx +++ b/libs/copilot/src/app.tsx @@ -45,9 +45,10 @@ export default function App({ config }: Props) { .then((res) => res.json()) .then((data: IProjectSettings) => { window.theme = data.ui.theme; + config.theme = config.theme || data.ui.theme.default; setSettings((old) => ({ ...old, - theme: config.theme ? config.theme : old.theme + theme: config.theme! })); const _theme = overrideTheme( diff --git a/libs/copilot/src/chat/body.tsx b/libs/copilot/src/chat/body.tsx index b50a997aa7..768fdf8702 100644 --- a/libs/copilot/src/chat/body.tsx +++ b/libs/copilot/src/chat/body.tsx @@ -17,6 +17,7 @@ import { ErrorBoundary } from '@chainlit/app/src/components/atoms/ErrorBoundary' import { TaskList } from '@chainlit/app/src/components/molecules/tasklist/TaskList'; import DropScreen from '@chainlit/app/src/components/organisms/chat/dropScreen'; import ChatSettingsModal from '@chainlit/app/src/components/organisms/chat/settings'; +import WelcomeScreen from '@chainlit/app/src/components/organisms/chat/welcomeScreen'; import { useUpload } from '@chainlit/app/src/hooks'; import { IAttachment, attachmentsState } from '@chainlit/app/src/state/chat'; import { projectSettingsState } from '@chainlit/app/src/state/project'; @@ -201,11 +202,14 @@ const Chat = () => { - + + + + null, []); - const onElementRefClick = useCallback( (element: IMessageElement) => { if (element.display === 'side') { @@ -111,8 +109,7 @@ const MessageContainer = memo( onElementRefClick, onError, onFeedbackUpdated, - onFeedbackDeleted, - onPlaygroundButtonClick + onFeedbackDeleted }; }, [ askUser, @@ -123,8 +120,7 @@ const MessageContainer = memo( projectSettings?.features?.unsafe_allow_html, onElementRefClick, onError, - onFeedbackUpdated, - onPlaygroundButtonClick + onFeedbackUpdated ]); return ( diff --git a/libs/copilot/src/chat/messages/index.tsx b/libs/copilot/src/chat/messages/index.tsx index fc24fbea45..9dd6a016e8 100644 --- a/libs/copilot/src/chat/messages/index.tsx +++ b/libs/copilot/src/chat/messages/index.tsx @@ -1,13 +1,9 @@ import { WidgetContext } from 'context'; import { useCallback, useContext } from 'react'; -import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { useSetRecoilState } from 'recoil'; import { toast } from 'sonner'; -import WelcomeScreen from '@chainlit/app/src/components/organisms/chat/Messages/welcomeScreen'; -import { - IProjectSettings, - projectSettingsState -} from '@chainlit/app/src/state/project'; +import { IProjectSettings } from '@chainlit/app/src/state/project'; import { IAction, IFeedback, @@ -16,8 +12,7 @@ import { updateMessageById, useChatData, useChatInteract, - useChatMessages, - useChatSession + useChatMessages } from '@chainlit/react-client'; import MessageContainer from './container'; @@ -32,9 +27,7 @@ const Messages = ({ autoScroll, setAutoScroll }: MessagesProps): JSX.Element => { - const projectSettings = useRecoilValue(projectSettingsState); const { apiClient, accessToken } = useContext(WidgetContext); - const { idToResume } = useChatSession(); const { elements, askUser, loading, actions } = useChatData(); const { messages } = useChatMessages(); @@ -122,22 +115,6 @@ const Messages = ({ [] ); - const showWelcomeScreen = - !idToResume && - !messages.length && - projectSettings?.ui.show_readme_as_default; - - if (showWelcomeScreen) { - return ( - - ); - } - return ( void - ) { - const payload = { userEnv }; - if (generation.type === 'CHAT') { - payload['chatGeneration'] = generation; - } else { - payload['completionGeneration'] = generation; - } - const response = await this.post( - `/generation`, - payload, - accessToken, - controller.signal - ); - - const reader = response?.body?.getReader(); - - const stream = new ReadableStream({ - start(controller) { - function push() { - reader! - .read() - .then(({ done, value }) => { - if (done) { - controller.close(); - tokenCb && tokenCb(done, ''); - return; - } - const string = new TextDecoder('utf-8').decode(value); - tokenCb && tokenCb(done, string); - controller.enqueue(value); - push(); - }) - .catch((err) => { - controller.close(); - tokenCb && tokenCb(true, ''); - console.error(err); - }); - } - push(); - } - }); - - return stream; - } - async setFeedback( feedback: IFeedback, accessToken?: string diff --git a/libs/react-client/src/types/generation.ts b/libs/react-client/src/types/generation.ts deleted file mode 100644 index 7e3f5161c2..0000000000 --- a/libs/react-client/src/types/generation.ts +++ /dev/null @@ -1,54 +0,0 @@ -export type GenerationMessageRole = - | 'system' - | 'assistant' - | 'user' - | 'function' - | 'tool'; -export type ILLMSettings = Record; - -export interface IGenerationMessage { - content: string; - role: GenerationMessageRole; - name?: string; - tool_calls?: any[]; -} - -export interface IFunction { - name: string; - description: string; - parameters: { - required: string[]; - properties: Record; - }; -} - -export interface ITool { - type: string; - function: IFunction; -} - -export interface IBaseGeneration { - provider: string; - model?: string; - error?: string; - id?: string; - variables?: Record; - tags?: string[]; - settings?: ILLMSettings; - tools?: ITool[]; - tokenCount?: number; -} - -export interface ICompletionGeneration extends IBaseGeneration { - type: 'COMPLETION'; - prompt?: string; - completion?: string; -} - -export interface IChatGeneration extends IBaseGeneration { - type: 'CHAT'; - messages?: IGenerationMessage[]; - messageCompletion?: IGenerationMessage; -} - -export type IGeneration = ICompletionGeneration | IChatGeneration; diff --git a/libs/react-client/src/types/index.ts b/libs/react-client/src/types/index.ts index 378c223de0..c10cd2bc4e 100644 --- a/libs/react-client/src/types/index.ts +++ b/libs/react-client/src/types/index.ts @@ -5,5 +5,4 @@ export * from './feedback'; export * from './step'; export * from './user'; export * from './thread'; -export * from './generation'; export * from './history'; diff --git a/libs/react-client/src/types/step.ts b/libs/react-client/src/types/step.ts index 87cde8723c..130e988ec2 100644 --- a/libs/react-client/src/types/step.ts +++ b/libs/react-client/src/types/step.ts @@ -1,5 +1,4 @@ import { IFeedback } from './feedback'; -import { IGeneration } from './generation'; type StepType = | 'assistant_message' @@ -31,7 +30,6 @@ export interface IStep { feedback?: IFeedback; language?: string; streaming?: boolean; - generation?: IGeneration; steps?: IStep[]; //legacy indent?: number; From 37f2e4b447dffc6593bdc203a8dce92520dbeb6c Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Sun, 26 May 2024 20:51:58 +0200 Subject: [PATCH 05/19] fix tests and copilot css, focus and session reset --- backend/chainlit/discord/app.py | 1 - backend/chainlit/langchain/callbacks.py | 6 +- backend/chainlit/llama_index/callbacks.py | 4 +- backend/chainlit/message.py | 2 +- backend/chainlit/slack/app.py | 1 - backend/chainlit/utils.py | 7 +- .../e2e/author_rename/.chainlit/config.toml | 62 -- cypress/e2e/author_rename/main.py | 19 - cypress/e2e/author_rename/spec.cy.ts | 12 - .../e2e/chat_settings/.chainlit/config.toml | 66 +- cypress/e2e/data_layer/main.py | 2 +- cypress/e2e/data_layer/spec.cy.ts | 4 +- cypress/e2e/elements/main.py | 17 +- cypress/e2e/elements/spec.cy.ts | 1 - .../e2e/llama_index_cb/.chainlit/config.toml | 25 +- cypress/e2e/llama_index_cb/spec.cy.ts | 12 +- cypress/e2e/readme/spec.cy.ts | 13 +- cypress/e2e/remove_elements/main.py | 2 +- cypress/e2e/remove_elements/spec.cy.ts | 8 +- cypress/e2e/remove_step/main.py | 2 +- cypress/e2e/remove_step/spec.cy.ts | 8 +- cypress/e2e/starters/main.py | 15 + cypress/e2e/starters/spec.cy.ts | 16 + cypress/e2e/step/main.py | 6 +- cypress/e2e/step/main_async.py | 6 +- cypress/e2e/step/spec.cy.ts | 15 +- cypress/e2e/stop_task/main_async.py | 9 +- cypress/e2e/stop_task/main_sync.py | 9 +- cypress/e2e/stop_task/spec.cy.ts | 18 +- cypress/e2e/streaming/main.py | 4 +- cypress/e2e/streaming/spec.cy.ts | 26 +- cypress/e2e/update_step/main.py | 2 +- cypress/e2e/update_step/spec.cy.ts | 7 +- .../components/molecules/messages/Message.tsx | 9 +- .../molecules/messages/ToolCall.tsx | 8 +- .../molecules/messages/ToolCalls.tsx | 12 +- .../messages/components/MessageContent.tsx | 2 +- .../organisms/chat/welcomeScreen/index.tsx | 7 +- .../organisms/chat/welcomeScreen/starter.tsx | 1 + .../src/components/organisms/readmeButton.tsx | 1 + .../organisms/sidebar/OpenSideBarButton.tsx | 1 + frontend/tests/content.spec.tsx | 8 +- frontend/tests/message.spec.tsx | 24 +- libs/copilot/index.tsx | 45 +- libs/copilot/package.json | 2 + libs/copilot/pnpm-lock.yaml | 12 + libs/copilot/sonner.css | 661 ++++++++++++++++++ libs/copilot/src/app.tsx | 28 + libs/copilot/src/chat/index.tsx | 3 +- libs/copilot/src/components/Input.tsx | 1 - libs/react-client/src/utils/message.ts | 6 +- 51 files changed, 974 insertions(+), 264 deletions(-) delete mode 100644 cypress/e2e/author_rename/.chainlit/config.toml delete mode 100644 cypress/e2e/author_rename/main.py delete mode 100644 cypress/e2e/author_rename/spec.cy.ts create mode 100644 cypress/e2e/starters/main.py create mode 100644 cypress/e2e/starters/spec.cy.ts create mode 100644 libs/copilot/sonner.css diff --git a/backend/chainlit/discord/app.py b/backend/chainlit/discord/app.py index 33126a7960..1b728c9856 100644 --- a/backend/chainlit/discord/app.py +++ b/backend/chainlit/discord/app.py @@ -104,7 +104,6 @@ async def send_step(self, step_dict: StepDict): is_message = step_type in [ "user_message", "assistant_message", - "system_message", ] is_chain_of_thought = bool(step_dict.get("parentId")) is_empty_output = not step_dict.get("output") diff --git a/backend/chainlit/langchain/callbacks.py b/backend/chainlit/langchain/callbacks.py index 0876444929..a0605d0c4e 100644 --- a/backend/chainlit/langchain/callbacks.py +++ b/backend/chainlit/langchain/callbacks.py @@ -456,7 +456,7 @@ def _start_trace(self, run: Run) -> None: elif run.run_type == "llm": step_type = "llm" elif run.run_type == "retriever": - step_type = "retrieval" + step_type = "tool" elif run.run_type == "tool": step_type = "tool" elif run.run_type == "embedding": @@ -533,7 +533,9 @@ def _on_run_update(self, run: Run) -> None: break current_step.language = "json" - current_step.output = json.dumps(message_completion, indent=4, ensure_ascii=False) + current_step.output = json.dumps( + message_completion, indent=4, ensure_ascii=False + ) else: completion_start = self.completion_generations[str(run.id)] completion = generation.get("text", "") diff --git a/backend/chainlit/llama_index/callbacks.py b/backend/chainlit/llama_index/callbacks.py index 7da19e8987..5f5d954f2e 100644 --- a/backend/chainlit/llama_index/callbacks.py +++ b/backend/chainlit/llama_index/callbacks.py @@ -73,9 +73,9 @@ def on_event_start( step_type: StepType = "undefined" if event_type == CBEventType.RETRIEVE: - step_type = "retrieval" + step_type = "tool" elif event_type == CBEventType.QUERY: - step_type = "retrieval" + step_type = "tool" elif event_type == CBEventType.LLM: step_type = "llm" else: diff --git a/backend/chainlit/message.py b/backend/chainlit/message.py index f9bc71b84a..236e44fb10 100644 --- a/backend/chainlit/message.py +++ b/backend/chainlit/message.py @@ -316,7 +316,7 @@ def __init__( ): self.content = content self.author = author - self.type = "system_message" + self.type = "assistant_message" self.is_error = True self.fail_on_persist_error = fail_on_persist_error diff --git a/backend/chainlit/slack/app.py b/backend/chainlit/slack/app.py index 8fd82f6449..88cbb9e761 100644 --- a/backend/chainlit/slack/app.py +++ b/backend/chainlit/slack/app.py @@ -71,7 +71,6 @@ async def send_step(self, step_dict: StepDict): is_message = step_type in [ "user_message", "assistant_message", - "system_message", ] is_chain_of_thought = bool(step_dict.get("parentId")) is_empty_output = not step_dict.get("output") diff --git a/backend/chainlit/utils.py b/backend/chainlit/utils.py index 922ddd4138..310a279250 100644 --- a/backend/chainlit/utils.py +++ b/backend/chainlit/utils.py @@ -44,9 +44,10 @@ async def wrapper(*args): pass except Exception as e: logger.exception(e) - await ErrorMessage( - content=str(e) or e.__class__.__name__, author="Error" - ).send() + if with_task: + await ErrorMessage( + content=str(e) or e.__class__.__name__, author="Error" + ).send() finally: if with_task: await context.emitter.task_end() diff --git a/cypress/e2e/author_rename/.chainlit/config.toml b/cypress/e2e/author_rename/.chainlit/config.toml deleted file mode 100644 index 0c509af72c..0000000000 --- a/cypress/e2e/author_rename/.chainlit/config.toml +++ /dev/null @@ -1,62 +0,0 @@ -[project] -# Whether to enable telemetry (default: true). No personal data is collected. -enable_telemetry = true - -# List of environment variables to be provided by each user to use the app. -user_env = [] - -# Duration (in seconds) during which the session is saved when the connection is lost -session_timeout = 3600 - -# Enable third parties caching (e.g LangChain cache) -cache = false - -# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317) -# follow_symlink = false - -[features] -# Show the prompt playground -prompt_playground = true - -[UI] -# Name of the app and chatbot. -name = "Chatbot" - -# Description of the app and chatbot. This is used for HTML tags. -# description = "" - -# Large size content are by default collapsed for a cleaner ui -default_collapse_content = true - -# The default value for the expand messages settings. -default_expand_messages = false - -# Hide the chain of thought details from the user in the UI. -hide_cot = false - -# Link to your github repo. This will add a github button in the UI's header. -# github = "" - -# Override default MUI light theme. (Check theme.ts) -[UI.theme.light] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.light.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - -# Override default MUI dark theme. (Check theme.ts) -[UI.theme.dark] - #background = "#FAFAFA" - #paper = "#FFFFFF" - - [UI.theme.dark.primary] - #main = "#F80061" - #dark = "#980039" - #light = "#FFE7EB" - - -[meta] -generated_by = "0.6.402" diff --git a/cypress/e2e/author_rename/main.py b/cypress/e2e/author_rename/main.py deleted file mode 100644 index eddd2d3419..0000000000 --- a/cypress/e2e/author_rename/main.py +++ /dev/null @@ -1,19 +0,0 @@ -import chainlit as cl - - -@cl.author_rename -def rename(orig_author: str): - rename_dict = {"LLMMathChain": "Albert Einstein", "Chatbot": "Assistant"} - return rename_dict.get(orig_author, orig_author) - - -@cl.step -def LLMMathChain(): - return "2+2=4" - - -@cl.on_chat_start -async def main(): - await cl.Message(author="LLMMathChain", content="2+2=4").send() - LLMMathChain() - await cl.Message(content="The response is 4").send() diff --git a/cypress/e2e/author_rename/spec.cy.ts b/cypress/e2e/author_rename/spec.cy.ts deleted file mode 100644 index 60b30cbf77..0000000000 --- a/cypress/e2e/author_rename/spec.cy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { runTestServer } from '../../support/testUtils'; - -describe('Author rename', () => { - before(() => { - runTestServer(); - }); - - it('should be able to rename authors', () => { - cy.get('.step').eq(0).should('contain', 'Albert Einstein'); - cy.get('.step').eq(1).should('contain', 'Assistant'); - }); -}); diff --git a/cypress/e2e/chat_settings/.chainlit/config.toml b/cypress/e2e/chat_settings/.chainlit/config.toml index 8c46822f75..e2a2b2a16d 100644 --- a/cypress/e2e/chat_settings/.chainlit/config.toml +++ b/cypress/e2e/chat_settings/.chainlit/config.toml @@ -2,6 +2,7 @@ # Whether to enable telemetry (default: true). No personal data is collected. enable_telemetry = true + # List of environment variables to be provided by each user to use the app. user_env = [] @@ -11,12 +12,42 @@ session_timeout = 3600 # Enable third parties caching (e.g LangChain cache) cache = false +# Authorized origins +allow_origins = ["*"] + # Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317) # follow_symlink = false [features] -# Show the prompt playground -prompt_playground = true +# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript) +unsafe_allow_html = false + +# Process and display mathematical expressions. This can clash with "$" characters in messages. +latex = false + +# Automatically tag threads with the current chat profile (if a chat profile is used) +auto_tag_thread = true + +# Authorize users to spontaneously upload files with messages +[features.spontaneous_file_upload] + enabled = true + accept = ["*/*"] + max_files = 20 + max_size_mb = 500 + +[features.audio] + # Threshold for audio recording + min_decibels = -45 + # Delay for the user to start speaking in MS + initial_silence_timeout = 3000 + # Delay for the user to continue speaking in MS. If the user stops speaking for this duration, the recording will stop. + silence_timeout = 1500 + # Above this duration (MS), the recording will forcefully stop. + max_duration = 15000 + # Duration of the audio chunks in MS + chunk_duration = 1000 + # Sample rate of the audio + sample_rate = 44100 [UI] # Name of the app and chatbot. @@ -28,9 +59,6 @@ name = "Chatbot" # Large size content are by default collapsed for a cleaner ui default_collapse_content = true -# The default value for the expand messages settings. -default_expand_messages = false - # Hide the chain of thought details from the user in the UI. hide_cot = false @@ -41,6 +69,25 @@ hide_cot = false # The CSS file can be served from the public directory or via an external link. # custom_css = "/public/test.css" +# Specify a Javascript file that can be used to customize the user interface. +# The Javascript file can be served from the public directory. +# custom_js = "/public/test.js" + +# Specify a custom font url. +# custom_font = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" + +# Specify a custom meta image url. +# custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png" + +# Specify a custom build directory for the frontend. +# This can be used to customize the frontend code. +# Be careful: If this is a relative path, it should not start with a slash. +# custom_build = "./public/build" + +[UI.theme] + default = "dark" + #layout = "wide" + #font_family = "Inter, sans-serif" # Override default MUI light theme. (Check theme.ts) [UI.theme.light] #background = "#FAFAFA" @@ -50,6 +97,9 @@ hide_cot = false #main = "#F80061" #dark = "#980039" #light = "#FFE7EB" + [UI.theme.light.text] + #primary = "#212121" + #secondary = "#616161" # Override default MUI dark theme. (Check theme.ts) [UI.theme.dark] @@ -60,7 +110,9 @@ hide_cot = false #main = "#F80061" #dark = "#980039" #light = "#FFE7EB" - + [UI.theme.dark.text] + #primary = "#EEEEEE" + #secondary = "#BDBDBD" [meta] -generated_by = "0.7.1" +generated_by = "1.0.504" diff --git a/cypress/e2e/data_layer/main.py b/cypress/e2e/data_layer/main.py index e632ce724a..8e02ce6f0f 100644 --- a/cypress/e2e/data_layer/main.py +++ b/cypress/e2e/data_layer/main.py @@ -150,7 +150,7 @@ async def handle_message(): # Wait for queue to be flushed await cl.sleep(2) await send_count() - async with cl.Step(root=True, disable_feedback=True) as step: + async with cl.Step(type="tool", name="thinking") as step: step.output = "Thinking..." await cl.Message("Ok!").send() await send_count() diff --git a/cypress/e2e/data_layer/spec.cy.ts b/cypress/e2e/data_layer/spec.cy.ts index 78b2c7e892..479c23b941 100644 --- a/cypress/e2e/data_layer/spec.cy.ts +++ b/cypress/e2e/data_layer/spec.cy.ts @@ -23,7 +23,7 @@ function feedback() { function threadQueue() { cy.get('.step').eq(1).should('contain', 'Create step counter: 0'); cy.get('.step').eq(3).should('contain', 'Create step counter: 3'); - cy.get('.step').eq(6).should('contain', 'Create step counter: 6'); + cy.get('.step').eq(5).should('contain', 'Create step counter: 6'); } function threadList() { @@ -68,8 +68,6 @@ function resumeThread() { cy.get('.step').eq(0).should('contain', 'Hello'); cy.get('.step').eq(5).should('contain', 'Welcome back to Hello'); - // Because the Thread was closed, the metadata should have been updated automatically - cy.get('.step').eq(6).should('contain', 'metadata'); cy.get('.step').eq(6).should('contain', 'chat_profile'); } diff --git a/cypress/e2e/elements/main.py b/cypress/e2e/elements/main.py index aab0cd2cca..6369df22f0 100644 --- a/cypress/e2e/elements/main.py +++ b/cypress/e2e/elements/main.py @@ -3,25 +3,22 @@ import chainlit as cl -@cl.step +@cl.step(type="tool") async def gen_img(): - if current_step := context.current_step: - current_step.elements = [ - cl.Image(path="./cat.jpeg", name="image1", display="inline") - ] - return "Here is a cat!" + + return cl.Image(path="./cat.jpeg", name="image1", display="inline") @cl.on_chat_start async def start(): + + img = await gen_img() + # Element should not be inlined or referenced await cl.Message( - content="Here is image1, a nice image of a cat! As well as text1 and text2!", + content="Here is image1, a nice image of a cat!", elements=[img] ).send() - # Step should be able to have elements - await gen_img() - # Image should be inlined even if not referenced await cl.Message( content="Here a nice image of a cat! As well as text1 and text2!", diff --git a/cypress/e2e/elements/spec.cy.ts b/cypress/e2e/elements/spec.cy.ts index 9e4ede1c3c..77beb6d277 100644 --- a/cypress/e2e/elements/spec.cy.ts +++ b/cypress/e2e/elements/spec.cy.ts @@ -10,7 +10,6 @@ describe('Elements', () => { cy.get('.step').eq(0).find('.element-link').should('have.length', 0); cy.get('.step').eq(0).find('.inline-pdf').should('have.length', 0); - cy.get('#gen_img-done').should('exist').click(); cy.get('.step').eq(1).find('.inline-image').should('have.length', 1); cy.get('.step').eq(2).find('.inline-image').should('have.length', 1); diff --git a/cypress/e2e/llama_index_cb/.chainlit/config.toml b/cypress/e2e/llama_index_cb/.chainlit/config.toml index a5eee5dfa4..54a6f2c7d9 100644 --- a/cypress/e2e/llama_index_cb/.chainlit/config.toml +++ b/cypress/e2e/llama_index_cb/.chainlit/config.toml @@ -19,9 +19,6 @@ allow_origins = ["*"] # follow_symlink = false [features] -# Show the prompt playground -prompt_playground = true - # Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript) unsafe_allow_html = false @@ -56,18 +53,12 @@ auto_tag_thread = true # Name of the app and chatbot. name = "Chatbot" -# Show the readme while the thread is empty. -show_readme_as_default = true - # Description of the app and chatbot. This is used for HTML tags. # description = "" # Large size content are by default collapsed for a cleaner ui default_collapse_content = true -# The default value for the expand messages settings. -default_expand_messages = false - # Hide the chain of thought details from the user in the UI. hide_cot = false @@ -85,14 +76,19 @@ hide_cot = false # Specify a custom font url. # custom_font = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" +# Specify a custom meta image url. +# custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png" + # Specify a custom build directory for the frontend. # This can be used to customize the frontend code. # Be careful: If this is a relative path, it should not start with a slash. # custom_build = "./public/build" -# Override default MUI light theme. (Check theme.ts) [UI.theme] + default = "dark" + #layout = "wide" #font_family = "Inter, sans-serif" +# Override default MUI light theme. (Check theme.ts) [UI.theme.light] #background = "#FAFAFA" #paper = "#FFFFFF" @@ -101,6 +97,9 @@ hide_cot = false #main = "#F80061" #dark = "#980039" #light = "#FFE7EB" + [UI.theme.light.text] + #primary = "#212121" + #secondary = "#616161" # Override default MUI dark theme. (Check theme.ts) [UI.theme.dark] @@ -111,7 +110,9 @@ hide_cot = false #main = "#F80061" #dark = "#980039" #light = "#FFE7EB" - + [UI.theme.dark.text] + #primary = "#EEEEEE" + #secondary = "#BDBDBD" [meta] -generated_by = "1.0.504" +generated_by = "1.1.0rc1" diff --git a/cypress/e2e/llama_index_cb/spec.cy.ts b/cypress/e2e/llama_index_cb/spec.cy.ts index daa549df85..90366ce5e5 100644 --- a/cypress/e2e/llama_index_cb/spec.cy.ts +++ b/cypress/e2e/llama_index_cb/spec.cy.ts @@ -8,13 +8,15 @@ describe('Llama Index Callback', () => { it('should be able to send messages to the UI with prompts and elements', () => { cy.get('.step').should('have.length', 1); - cy.get('#llm-done').should('exist').click(); + const toolCall = cy.get('#tool-call-retrieve'); - cy.get('.step').should('have.length', 3); + toolCall.should('exist').click(); - cy.get('.step') - .eq(1) - .find('.element-link') + const toolCallContent = toolCall.get('.message-content').eq(0); + + toolCallContent + .should('exist') + .get('.element-link') .eq(0) .should('contain', 'Source 0'); }); diff --git a/cypress/e2e/readme/spec.cy.ts b/cypress/e2e/readme/spec.cy.ts index c729328a2d..ad8c2fac6b 100644 --- a/cypress/e2e/readme/spec.cy.ts +++ b/cypress/e2e/readme/spec.cy.ts @@ -1,34 +1,41 @@ import { runTestServer } from '../../support/testUtils'; +function openReadme() { + cy.get('#open-sidebar-button').click(); + cy.get('#readme-button').click(); +} + describe('readme_language', () => { before(() => { runTestServer(); }); it('should show default markdown on open', () => { - cy.visit('/readme'); + openReadme(); cy.contains('Welcome to Chainlit!'); }); it('should show Portguese markdown on pt-BR language', () => { - cy.visit('/readme', { + cy.visit('/', { onBeforeLoad(win) { Object.defineProperty(win.navigator, 'language', { value: 'pt-BR' }); } }); + openReadme(); cy.contains('Bem-vindo ao Chainlit!'); }); it('should fallback to default markdown on Klingon language', () => { - cy.visit('/readme', { + cy.visit('/', { onBeforeLoad(win) { Object.defineProperty(win.navigator, 'language', { value: 'Klingon' }); } }); + openReadme(); cy.contains('Welcome to Chainlit!'); }); }); diff --git a/cypress/e2e/remove_elements/main.py b/cypress/e2e/remove_elements/main.py index 2ef09eb115..62e3fc7725 100644 --- a/cypress/e2e/remove_elements/main.py +++ b/cypress/e2e/remove_elements/main.py @@ -10,7 +10,7 @@ async def start(): name="image1", display="inline", path="../../fixtures/cat.jpeg" ) - async with cl.Step() as step: + async with cl.Step(type="tool", name="tool1") as step: step.elements = [ step_image, cl.Image(name="image2", display="inline", path="../../fixtures/cat.jpeg"), diff --git a/cypress/e2e/remove_elements/spec.cy.ts b/cypress/e2e/remove_elements/spec.cy.ts index 8947478f7a..f767e96a0f 100644 --- a/cypress/e2e/remove_elements/spec.cy.ts +++ b/cypress/e2e/remove_elements/spec.cy.ts @@ -6,8 +6,14 @@ describe('remove_elements', () => { }); it('should be able to remove elements', () => { + cy.get('#tool-call-tool1').should('exist'); + cy.get('#tool-call-tool1').click(); + cy.get('#tool-call-tool1') + .parent() + .find('.inline-image') + .should('have.length', 1); + cy.get('.step').should('have.length', 2); - cy.get('.step').eq(0).find('.inline-image').should('have.length', 1); cy.get('.step').eq(1).find('.inline-image').should('have.length', 1); }); }); diff --git a/cypress/e2e/remove_step/main.py b/cypress/e2e/remove_step/main.py index 00ff44d12d..e57be8da5c 100644 --- a/cypress/e2e/remove_step/main.py +++ b/cypress/e2e/remove_step/main.py @@ -6,7 +6,7 @@ async def main(): msg1 = cl.Message(content="Message 1") await msg1.send() - async with cl.Step() as child1: + async with cl.Step(type="tool", name="tool1") as child1: child1.output = "Child 1" await cl.sleep(1) diff --git a/cypress/e2e/remove_step/spec.cy.ts b/cypress/e2e/remove_step/spec.cy.ts index 3e0b16ef07..6993c5dee8 100644 --- a/cypress/e2e/remove_step/spec.cy.ts +++ b/cypress/e2e/remove_step/spec.cy.ts @@ -9,11 +9,11 @@ describe('Remove Step', () => { cy.get('.step').should('have.length', 1); cy.get('.step').eq(0).should('contain', 'Message 1'); - cy.get('#chatbot-loading').should('exist'); - cy.get('#chatbot-loading').click(); - cy.get('.step').eq(1).should('contain', 'Child 1'); + cy.get('#tool-call-tool1').should('exist'); + cy.get('#tool-call-tool1').click(); + cy.get('.message-content').eq(0).should('contain', 'Child 1'); - cy.get('.step').should('have.length', 2); + cy.get('#tool-call-tool1').should('not.exist'); cy.get('.step').eq(1).should('contain', 'Message 2'); cy.get('.step').should('have.length', 1); diff --git a/cypress/e2e/starters/main.py b/cypress/e2e/starters/main.py new file mode 100644 index 0000000000..9d23cfd044 --- /dev/null +++ b/cypress/e2e/starters/main.py @@ -0,0 +1,15 @@ +import chainlit as cl + + +@cl.set_starters +async def starters(): + return [ + cl.Starter(title="test1", message="Running starter 1"), + cl.Starter(title="test2", message="Running starter 2"), + cl.Starter(title="test3", message="Running starter 3"), + ] + + +@cl.on_message +async def on_message(msg: cl.Message): + await cl.Message(msg.content).send() diff --git a/cypress/e2e/starters/spec.cy.ts b/cypress/e2e/starters/spec.cy.ts new file mode 100644 index 0000000000..a5fd1bf68c --- /dev/null +++ b/cypress/e2e/starters/spec.cy.ts @@ -0,0 +1,16 @@ +import { runTestServer } from '../../support/testUtils'; + +describe('Starters', () => { + before(() => { + runTestServer(); + }); + + it('should be able to use a starter', () => { + cy.wait(1000); + cy.get('#starter-test1').should('exist').click(); + cy.get('.step').should('have.length', 2); + + cy.get('.step').eq(0).contains('Running starter 1'); + cy.get('.step').eq(1).contains('Running starter 1'); + }); +}); diff --git a/cypress/e2e/step/main.py b/cypress/e2e/step/main.py index 543ad1ad7b..3ca09ed7cf 100644 --- a/cypress/e2e/step/main.py +++ b/cypress/e2e/step/main.py @@ -2,19 +2,19 @@ def tool_3(): - with cl.Step(name="Tool 3", type="tool") as s: + with cl.Step(name="tool3", type="tool") as s: cl.run_sync(cl.sleep(2)) s.output = "Response from tool 3" -@cl.step +@cl.step(name="tool2", type="tool") def tool_2(): tool_3() cl.run_sync(cl.Message(content="Message from tool 2").send()) return "Response from tool 2" -@cl.step(name="Tool 1", type="tool") +@cl.step(name="tool1", type="tool") def tool_1(): tool_2() return "Response from tool 1" diff --git a/cypress/e2e/step/main_async.py b/cypress/e2e/step/main_async.py index bb8218cc12..7422871185 100644 --- a/cypress/e2e/step/main_async.py +++ b/cypress/e2e/step/main_async.py @@ -2,19 +2,19 @@ async def tool_3(): - async with cl.Step(name="Tool 3", type="tool") as s: + async with cl.Step(name="tool3", type="tool") as s: await cl.sleep(2) s.output = "Response from tool 3" -@cl.step +@cl.step(name="tool2", type="tool") async def tool_2(): await tool_3() await cl.Message(content="Message from tool 2").send() return "Response from tool 2" -@cl.step(name="Tool 1", type="tool") +@cl.step(name="tool1", type="tool") async def tool_1(): await tool_2() return "Response from tool 1" diff --git a/cypress/e2e/step/spec.cy.ts b/cypress/e2e/step/spec.cy.ts index 705aed2266..3de8b62816 100644 --- a/cypress/e2e/step/spec.cy.ts +++ b/cypress/e2e/step/spec.cy.ts @@ -12,19 +12,12 @@ describeSyncAsync('Step', () => { it('should be able to nest steps', () => { submitMessage('Hello'); - cy.get('#tool-1-loading').should('exist'); - cy.get('#tool-1-loading').click(); + cy.get('#tool-call-tool1').should('exist').click(); - cy.get('#tool_2-loading').should('exist'); - cy.get('#tool_2-loading').click(); + cy.get('#tool-call-tool2').should('exist').click(); - cy.get('#tool-3-loading').should('exist'); - cy.get('#tool-3-loading').click(); + cy.get('#tool-call-tool3').should('exist').click(); - cy.get('#tool-1-done').should('exist'); - cy.get('#tool_2-done').should('exist'); - cy.get('#tool-3-done').should('exist'); - - cy.get('.step').should('have.length', 5); + cy.get('.step').should('have.length', 2); }); }); diff --git a/cypress/e2e/stop_task/main_async.py b/cypress/e2e/stop_task/main_async.py index 12ed98bd23..17e8b044e3 100644 --- a/cypress/e2e/stop_task/main_async.py +++ b/cypress/e2e/stop_task/main_async.py @@ -1,13 +1,8 @@ import chainlit as cl -@cl.on_chat_start -async def start(): +@cl.on_message +async def message(message: cl.Message): await cl.Message(content="Message 1").send() await cl.sleep(1) await cl.Message(content="Message 2").send() - - -@cl.on_message -async def message(message: cl.Message): - await cl.Message(content="World").send() diff --git a/cypress/e2e/stop_task/main_sync.py b/cypress/e2e/stop_task/main_sync.py index 2af957552d..be74d6d254 100644 --- a/cypress/e2e/stop_task/main_sync.py +++ b/cypress/e2e/stop_task/main_sync.py @@ -7,13 +7,8 @@ def sync_function(): time.sleep(1) -@cl.on_chat_start -async def start(): +@cl.on_message +async def message(message: cl.Message): await cl.Message(content="Message 1").send() await cl.make_async(sync_function)() await cl.Message(content="Message 2").send() - - -@cl.on_message -async def message(message: cl.Message): - await cl.Message(content="World").send() diff --git a/cypress/e2e/stop_task/spec.cy.ts b/cypress/e2e/stop_task/spec.cy.ts index 78144d55e1..3bc0d71efc 100644 --- a/cypress/e2e/stop_task/spec.cy.ts +++ b/cypress/e2e/stop_task/spec.cy.ts @@ -10,24 +10,12 @@ describeSyncAsync('Stop task', (mode) => { }); it('should be able to stop a task', () => { - cy.get('.step').should('have.length', 1); - - cy.get('.step').last().should('contain.text', 'Message 1'); + submitMessage('Hello'); cy.get('#stop-button').should('exist').click(); cy.get('#stop-button').should('not.exist'); - cy.get('.step').should('have.length', 2); - + cy.wait(1000); + cy.get('.step').should('have.length', 3); cy.get('.step').last().should('contain.text', 'Task manually stopped.'); - - cy.wait(5000); - - cy.get('.step').should('have.length', 2); - - submitMessage('Hello'); - - cy.get('.step').should('have.length', 4); - - cy.get('.step').last().should('contain.text', 'World'); }); }); diff --git a/cypress/e2e/streaming/main.py b/cypress/e2e/streaming/main.py index 88dd019e4c..124edaa4c1 100644 --- a/cypress/e2e/streaming/main.py +++ b/cypress/e2e/streaming/main.py @@ -21,14 +21,14 @@ async def main(): await msg.send() - step = cl.Step() + step = cl.Step(type="tool", name="tool1") for token in token_list: await step.stream_token(token) await cl.sleep(0.2) await step.send() - step = cl.Step() + step = cl.Step(type="tool", name="tool2") for seq in sequence_list: await step.stream_token(token=seq, is_sequence=True) await cl.sleep(0.2) diff --git a/cypress/e2e/streaming/spec.cy.ts b/cypress/e2e/streaming/spec.cy.ts index a3bfb1c330..8552257fea 100644 --- a/cypress/e2e/streaming/spec.cy.ts +++ b/cypress/e2e/streaming/spec.cy.ts @@ -1,13 +1,23 @@ import { runTestServer } from '../../support/testUtils'; -function testStreamedTest(index: number) { - const tokenList = ['the', 'quick', 'brown', 'fox']; +const tokenList = ['the', 'quick', 'brown', 'fox']; + +function messageStream(index: number) { for (const token of tokenList) { cy.get('.step').eq(index).should('contain', token); } cy.get('.step').eq(index).should('contain', tokenList.join(' ')); } +function toolStream(tool: string) { + const toolCall = cy.get(`#tool-call-${tool}`); + toolCall.click(); + for (const token of tokenList) { + toolCall.parent().should('contain', token); + } + toolCall.parent().should('contain', tokenList.join(' ')); +} + describe('Streaming', () => { before(() => { runTestServer(); @@ -16,20 +26,18 @@ describe('Streaming', () => { it('should be able to stream a message', () => { cy.get('.step').should('have.length', 1); - testStreamedTest(0); + messageStream(0); cy.get('.step').should('have.length', 1); - testStreamedTest(1); + messageStream(1); cy.get('.step').should('have.length', 2); - testStreamedTest(2); - - cy.get('.step').should('have.length', 3); + toolStream('tool1'); - testStreamedTest(3); + toolStream('tool2'); - cy.get('.step').should('have.length', 4); + cy.get('.step').should('have.length', 3); }); }); diff --git a/cypress/e2e/update_step/main.py b/cypress/e2e/update_step/main.py index fb407253cc..5ac3723a9c 100644 --- a/cypress/e2e/update_step/main.py +++ b/cypress/e2e/update_step/main.py @@ -6,7 +6,7 @@ async def main(): msg = cl.Message(content="Hello!") await msg.send() - async with cl.Step() as step: + async with cl.Step(type="tool", name="tool1") as step: step.output = "Foo" await cl.sleep(1) diff --git a/cypress/e2e/update_step/spec.cy.ts b/cypress/e2e/update_step/spec.cy.ts index cc8fd02bec..795c0eb47d 100644 --- a/cypress/e2e/update_step/spec.cy.ts +++ b/cypress/e2e/update_step/spec.cy.ts @@ -6,13 +6,12 @@ describe('Update Step', () => { }); it('should be able to update a step', () => { + cy.get(`#tool-call-tool1`).click(); cy.get('.step').should('have.length', 1); - cy.get('#chatbot-loading').should('exist').click(); - cy.get('.step').should('have.length', 2); cy.get('.step').eq(0).should('contain', 'Hello!'); - cy.get('.step').eq(1).should('contain', 'Foo'); + cy.get(`#tool-call-tool1`).parent().should('contain', 'Foo'); cy.get('.step').eq(0).should('contain', 'Hello again!'); - cy.get('.step').eq(1).should('contain', 'Foo Bar'); + cy.get(`#tool-call-tool1`).parent().should('contain', 'Foo Bar'); }); }); diff --git a/frontend/src/components/molecules/messages/Message.tsx b/frontend/src/components/molecules/messages/Message.tsx index 465acd1a88..5b8643a44d 100644 --- a/frontend/src/components/molecules/messages/Message.tsx +++ b/frontend/src/components/molecules/messages/Message.tsx @@ -98,8 +98,7 @@ const Message = memo( /> {forceDisplayCursor && ( - - + )} @@ -108,7 +107,11 @@ const Message = memo( - + { @@ -45,6 +46,7 @@ export default function ToolCall({ steps, isRunning }: Props) { onMouseOver={() => setHover(true)} onMouseOut={() => setHover(false)} onClick={() => setOpen(!open)} + id={`tool-call-${toolName}`} > ( diff --git a/frontend/src/components/molecules/messages/ToolCalls.tsx b/frontend/src/components/molecules/messages/ToolCalls.tsx index 126ede965f..d739b76d05 100644 --- a/frontend/src/components/molecules/messages/ToolCalls.tsx +++ b/frontend/src/components/molecules/messages/ToolCalls.tsx @@ -2,12 +2,13 @@ import { useMemo } from 'react'; import Stack from '@mui/material/Stack'; -import type { IStep } from 'client-types/'; +import type { IMessageElement, IStep } from 'client-types/'; import ToolCall from './ToolCall'; interface Props { message: IStep; + elements: IMessageElement[]; isRunning?: boolean; } @@ -47,7 +48,7 @@ function groupToolSteps(step: IStep) { return groupedSteps; } -export default function ToolCalls({ message, isRunning }: Props) { +export default function ToolCalls({ message, elements, isRunning }: Props) { const toolCalls = useMemo(() => { return message.steps ? groupToolSteps(message) : []; }, [message]); @@ -59,7 +60,12 @@ export default function ToolCalls({ message, isRunning }: Props) { return ( {toolCalls.map((toolCall, index) => ( - + ))} ); diff --git a/frontend/src/components/molecules/messages/components/MessageContent.tsx b/frontend/src/components/molecules/messages/components/MessageContent.tsx index e8635f7de4..c7e831d7d2 100644 --- a/frontend/src/components/molecules/messages/components/MessageContent.tsx +++ b/frontend/src/components/molecules/messages/components/MessageContent.tsx @@ -112,7 +112,7 @@ const MessageContent = memo( ); return ( - + {output ? messageContent : null} diff --git a/frontend/src/components/organisms/chat/welcomeScreen/index.tsx b/frontend/src/components/organisms/chat/welcomeScreen/index.tsx index 76b0c71e80..cdeb051843 100644 --- a/frontend/src/components/organisms/chat/welcomeScreen/index.tsx +++ b/frontend/src/components/organisms/chat/welcomeScreen/index.tsx @@ -8,8 +8,6 @@ import { useChatMessages, useChatSession } from '@chainlit/react-client'; import { Logo } from 'components/atoms/logo'; -import { useLayoutMaxWidth } from 'hooks/useLayoutMaxWidth'; - import { projectSettingsState } from 'state/project'; import Starter from './starter'; @@ -19,7 +17,6 @@ interface Props { } export default function WelcomeScreen({ hideLogo }: Props) { - const maxWidth = useLayoutMaxWidth(); const { messages } = useChatMessages(); const [show, setShow] = useState(true); const { chatProfile } = useChatSession(); @@ -85,7 +82,7 @@ export default function WelcomeScreen({ hideLogo }: Props) { left={0} right={0} sx={{ overflowY: 'auto' }} - maxWidth={maxWidth} + maxWidth="min(48rem, 80vw)" justifyContent={hideLogo ? 'end' : 'center'} alignItems="center" gap={6} @@ -93,7 +90,7 @@ export default function WelcomeScreen({ hideLogo }: Props) { boxSizing={'border-box'} > {hideLogo ? null : {logo}} - + {starters?.map((starter, i) => ( diff --git a/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx b/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx index 636b97107a..a00786b37e 100644 --- a/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx +++ b/frontend/src/components/organisms/chat/welcomeScreen/starter.tsx @@ -33,6 +33,7 @@ export default function Starter({ starter }: Props) { return ( diff --git a/frontend/src/state/project.ts b/frontend/src/state/project.ts index e197d09f18..f1823777e2 100644 --- a/frontend/src/state/project.ts +++ b/frontend/src/state/project.ts @@ -3,7 +3,7 @@ import { atom } from 'recoil'; import { IStep } from '@chainlit/react-client'; export interface IStarter { - title: string; + label: string; message: string; icon?: string; } From f20ccfbe413fea02992de7d938031c39bead8dbe Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Mon, 27 May 2024 14:24:59 +0200 Subject: [PATCH 16/19] fix test --- frontend/tests/message.spec.tsx | 38 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/frontend/tests/message.spec.tsx b/frontend/tests/message.spec.tsx index ec38972edb..9476dbf1cb 100644 --- a/frontend/tests/message.spec.tsx +++ b/frontend/tests/message.spec.tsx @@ -83,24 +83,24 @@ describe('Message', () => { expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); }); - it('preserves the content size when app settings defaultCollapseContent is false', () => { - const theme = createTheme({}); - const { getByRole } = render( - - - - - - ); + // it('preserves the content size when app settings defaultCollapseContent is false', () => { + // const theme = createTheme({}); + // const { getByRole } = render( + // + // + // + // + // + // ); - expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); - }); + // expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); + // }); }); From 819a5bde7f2aa56c34c54139c3881dbf44180941 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Mon, 27 May 2024 14:30:31 +0200 Subject: [PATCH 17/19] fix test --- frontend/tests/content.spec.tsx | 72 ++++++++++++++++----------------- frontend/tests/message.spec.tsx | 32 +++++++-------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/frontend/tests/content.spec.tsx b/frontend/tests/content.spec.tsx index c81e70e2dd..7cd5ca325c 100644 --- a/frontend/tests/content.spec.tsx +++ b/frontend/tests/content.spec.tsx @@ -105,40 +105,40 @@ it('highlights sources containing regex characters correctly', () => { expect(getByRole('link', { name: 'page{12}' })).toBeInTheDocument(); }); -it('preserves the box size when collapsing', () => { - const { getByRole } = render( - - ); +// it('preserves the box size when collapsing', () => { +// const { getByRole } = render( +// +// ); - expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); -}); +// expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); +// }); diff --git a/frontend/tests/message.spec.tsx b/frontend/tests/message.spec.tsx index 9476dbf1cb..00d87330d2 100644 --- a/frontend/tests/message.spec.tsx +++ b/frontend/tests/message.spec.tsx @@ -65,23 +65,23 @@ describe('Message', () => { expect(messageContent).toBeInTheDocument(); }); - it('preserves the content size when message is streamed', () => { - const theme = createTheme({}); - const { getByRole } = render( - - - - ); + // it('preserves the content size when message is streamed', () => { + // const theme = createTheme({}); + // const { getByRole } = render( + // + // + // + // ); - expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); - }); + // expect(getByRole('button', { name: 'Collapse' })).toBeInTheDocument(); + // }); // it('preserves the content size when app settings defaultCollapseContent is false', () => { // const theme = createTheme({}); From c5b2b46a02fd14a0f6997f2f5990bc771165b51c Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Mon, 27 May 2024 14:47:32 +0200 Subject: [PATCH 18/19] update changelog --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22df15975d..4740eb35d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Nothing unreleased! +## [1.1.300rc0] - 2024-05-27 + +### Added + +- Debug mode when starting with `-d`. Only available if the data layer supports it +- `@cl.set_starters` and `cl.Starter` to suggest conversation starters to the user +- `default` theme config in `config.toml` +- If only one OAuth provider is set, automatically redirect the user to it + +### Changed + +- **[BREAKING]** Avatars have been reworked. `cl.Avatar` has been removed, instead place your avatars by name in `/public/avatars/*` +- **[BREAKING]** The `running`, `took_one` and `took_other` translations have been replaced by `used`. +- **[BREAKING]** `root` attribute of `cl.Step` has been removed. Use `cl.Message` to send root level messages. +- Chain of Thought has been reworked. Only steps of type `tool` will be displayed if `hide_cot` is false +- The `show_readme_as_default` config has been removed +- No longer collapse root level messages + +### Fixed + +- Error handling of steps has been improved +- No longer stream the first token twice +- Copilot should now work as expected even if the user is closing/reopening it +- Copilot CSS should no longer leak/be impacted by the host website CSS +- Fix various `cl.Context` errors + ## [1.1.202] - 2024-05-22 ### Added From 1a3c80ce4f32d8f51172ac4f33d57ad60c5642a8 Mon Sep 17 00:00:00 2001 From: Willy Douhard Date: Mon, 27 May 2024 16:55:49 +0200 Subject: [PATCH 19/19] update changelog --- CHANGELOG.md | 3 ++- .../components/molecules/messages/components/DebugButton.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4740eb35d5..8846902d7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ Nothing unreleased! ### Added -- Debug mode when starting with `-d`. Only available if the data layer supports it +- Debug mode when starting with `-d`. Only available if the data layer supports it. This replaces the Prompt Playground. - `@cl.set_starters` and `cl.Starter` to suggest conversation starters to the user - `default` theme config in `config.toml` - If only one OAuth provider is set, automatically redirect the user to it @@ -28,6 +28,7 @@ Nothing unreleased! ### Fixed +- The Chat Profile description should now disappear when not hovered. - Error handling of steps has been improved - No longer stream the first token twice - Copilot should now work as expected even if the user is closing/reopening it diff --git a/frontend/src/components/molecules/messages/components/DebugButton.tsx b/frontend/src/components/molecules/messages/components/DebugButton.tsx index 43ca7d5965..7bb6431218 100644 --- a/frontend/src/components/molecules/messages/components/DebugButton.tsx +++ b/frontend/src/components/molecules/messages/components/DebugButton.tsx @@ -19,7 +19,7 @@ const DebugButton = ({ step, debugUrl }: Props) => { .replace('[thread_id]', step.threadId!) .replace('[step_id]', stepId); return ( - +

Nb&R0zo%TgJ-hlzFQaXDqyKgLDbmlDL+B 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%0D1mhKH^8W$~8m&Fl*@PYQ}szT|& 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