215 lines
4.8 KiB
Python
215 lines
4.8 KiB
Python
|
|
import os
|
||
|
|
|
||
|
|
from dotenv import load_dotenv
|
||
|
|
|
||
|
|
# ruff: noqa: E402
|
||
|
|
# Keep this here to ensure imports have environment available.
|
||
|
|
env_file = os.getenv("CHAINLIT_ENV_FILE", ".env")
|
||
|
|
env_found = load_dotenv(dotenv_path=os.path.join(os.getcwd(), env_file))
|
||
|
|
|
||
|
|
from chainlit.logger import logger
|
||
|
|
|
||
|
|
if env_found:
|
||
|
|
logger.info(f"Loaded {env_file} file")
|
||
|
|
|
||
|
|
import asyncio
|
||
|
|
from typing import TYPE_CHECKING, Any, Dict
|
||
|
|
|
||
|
|
from literalai import ChatGeneration, CompletionGeneration, GenerationMessage
|
||
|
|
from pydantic.dataclasses import dataclass
|
||
|
|
|
||
|
|
import chainlit.input_widget as input_widget
|
||
|
|
from chainlit.action import Action
|
||
|
|
from chainlit.cache import cache
|
||
|
|
from chainlit.chat_context import chat_context
|
||
|
|
from chainlit.chat_settings import ChatSettings
|
||
|
|
from chainlit.context import context
|
||
|
|
from chainlit.element import (
|
||
|
|
Audio,
|
||
|
|
CustomElement,
|
||
|
|
Dataframe,
|
||
|
|
File,
|
||
|
|
Image,
|
||
|
|
Pdf,
|
||
|
|
Plotly,
|
||
|
|
Pyplot,
|
||
|
|
Task,
|
||
|
|
TaskList,
|
||
|
|
TaskStatus,
|
||
|
|
Text,
|
||
|
|
Video,
|
||
|
|
)
|
||
|
|
from chainlit.message import (
|
||
|
|
AskActionMessage,
|
||
|
|
AskElementMessage,
|
||
|
|
AskFileMessage,
|
||
|
|
AskUserMessage,
|
||
|
|
ErrorMessage,
|
||
|
|
Message,
|
||
|
|
)
|
||
|
|
from chainlit.mode import Mode, ModeOption
|
||
|
|
from chainlit.sidebar import ElementSidebar
|
||
|
|
from chainlit.step import Step, step
|
||
|
|
from chainlit.sync import make_async, run_sync
|
||
|
|
from chainlit.types import ChatProfile, InputAudioChunk, OutputAudioChunk, Starter
|
||
|
|
from chainlit.user import PersistedUser, User
|
||
|
|
from chainlit.user_session import user_session
|
||
|
|
from chainlit.utils import make_module_getattr
|
||
|
|
from chainlit.version import __version__
|
||
|
|
|
||
|
|
from .callbacks import (
|
||
|
|
action_callback,
|
||
|
|
author_rename,
|
||
|
|
data_layer,
|
||
|
|
header_auth_callback,
|
||
|
|
oauth_callback,
|
||
|
|
on_app_shutdown,
|
||
|
|
on_app_startup,
|
||
|
|
on_audio_chunk,
|
||
|
|
on_audio_end,
|
||
|
|
on_audio_start,
|
||
|
|
on_chat_end,
|
||
|
|
on_chat_resume,
|
||
|
|
on_chat_start,
|
||
|
|
on_feedback,
|
||
|
|
on_logout,
|
||
|
|
on_mcp_connect,
|
||
|
|
on_mcp_disconnect,
|
||
|
|
on_message,
|
||
|
|
on_settings_update,
|
||
|
|
on_shared_thread_view,
|
||
|
|
on_slack_reaction_added,
|
||
|
|
on_stop,
|
||
|
|
on_window_message,
|
||
|
|
password_auth_callback,
|
||
|
|
send_window_message,
|
||
|
|
set_chat_profiles,
|
||
|
|
set_starters,
|
||
|
|
)
|
||
|
|
|
||
|
|
if TYPE_CHECKING:
|
||
|
|
from chainlit.langchain.callbacks import (
|
||
|
|
AsyncLangchainCallbackHandler,
|
||
|
|
LangchainCallbackHandler,
|
||
|
|
)
|
||
|
|
from chainlit.llama_index.callbacks import LlamaIndexCallbackHandler
|
||
|
|
from chainlit.mistralai import instrument_mistralai
|
||
|
|
from chainlit.openai import instrument_openai
|
||
|
|
from chainlit.semantic_kernel import SemanticKernelFilter
|
||
|
|
|
||
|
|
|
||
|
|
def sleep(duration: int):
|
||
|
|
"""
|
||
|
|
Sleep for a given duration.
|
||
|
|
Args:
|
||
|
|
duration (int): The duration in seconds.
|
||
|
|
"""
|
||
|
|
return asyncio.sleep(duration)
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass()
|
||
|
|
class CopilotFunction:
|
||
|
|
name: str
|
||
|
|
args: Dict[str, Any]
|
||
|
|
|
||
|
|
def acall(self):
|
||
|
|
return context.emitter.send_call_fn(self.name, self.args)
|
||
|
|
|
||
|
|
|
||
|
|
__getattr__ = make_module_getattr(
|
||
|
|
{
|
||
|
|
"LangchainCallbackHandler": "chainlit.langchain.callbacks",
|
||
|
|
"AsyncLangchainCallbackHandler": "chainlit.langchain.callbacks",
|
||
|
|
"LlamaIndexCallbackHandler": "chainlit.llama_index.callbacks",
|
||
|
|
"instrument_openai": "chainlit.openai",
|
||
|
|
"instrument_mistralai": "chainlit.mistralai",
|
||
|
|
"SemanticKernelFilter": "chainlit.semantic_kernel",
|
||
|
|
"server": "chainlit.server",
|
||
|
|
}
|
||
|
|
)
|
||
|
|
|
||
|
|
__all__ = [
|
||
|
|
"Action",
|
||
|
|
"AskActionMessage",
|
||
|
|
"AskElementMessage",
|
||
|
|
"AskFileMessage",
|
||
|
|
"AskUserMessage",
|
||
|
|
"AsyncLangchainCallbackHandler",
|
||
|
|
"Audio",
|
||
|
|
"ChatGeneration",
|
||
|
|
"ChatProfile",
|
||
|
|
"ChatSettings",
|
||
|
|
"CompletionGeneration",
|
||
|
|
"CopilotFunction",
|
||
|
|
"CustomElement",
|
||
|
|
"Dataframe",
|
||
|
|
"ElementSidebar",
|
||
|
|
"ErrorMessage",
|
||
|
|
"File",
|
||
|
|
"GenerationMessage",
|
||
|
|
"Image",
|
||
|
|
"InputAudioChunk",
|
||
|
|
"LangchainCallbackHandler",
|
||
|
|
"LlamaIndexCallbackHandler",
|
||
|
|
"Message",
|
||
|
|
"Mode",
|
||
|
|
"ModeOption",
|
||
|
|
"OutputAudioChunk",
|
||
|
|
"Pdf",
|
||
|
|
"PersistedUser",
|
||
|
|
"Plotly",
|
||
|
|
"Pyplot",
|
||
|
|
"SemanticKernelFilter",
|
||
|
|
"Starter",
|
||
|
|
"Step",
|
||
|
|
"Task",
|
||
|
|
"TaskList",
|
||
|
|
"TaskStatus",
|
||
|
|
"Text",
|
||
|
|
"User",
|
||
|
|
"Video",
|
||
|
|
"__version__",
|
||
|
|
"action_callback",
|
||
|
|
"author_rename",
|
||
|
|
"cache",
|
||
|
|
"chat_context",
|
||
|
|
"context",
|
||
|
|
"data_layer",
|
||
|
|
"header_auth_callback",
|
||
|
|
"input_widget",
|
||
|
|
"instrument_mistralai",
|
||
|
|
"instrument_openai",
|
||
|
|
"make_async",
|
||
|
|
"oauth_callback",
|
||
|
|
"on_app_shutdown",
|
||
|
|
"on_app_startup",
|
||
|
|
"on_audio_chunk",
|
||
|
|
"on_audio_end",
|
||
|
|
"on_audio_start",
|
||
|
|
"on_chat_end",
|
||
|
|
"on_chat_resume",
|
||
|
|
"on_chat_start",
|
||
|
|
"on_feedback",
|
||
|
|
"on_logout",
|
||
|
|
"on_mcp_connect",
|
||
|
|
"on_mcp_disconnect",
|
||
|
|
"on_message",
|
||
|
|
"on_settings_update",
|
||
|
|
"on_shared_thread_view",
|
||
|
|
"on_slack_reaction_added",
|
||
|
|
"on_stop",
|
||
|
|
"on_window_message",
|
||
|
|
"password_auth_callback",
|
||
|
|
"run_sync",
|
||
|
|
"send_window_message",
|
||
|
|
"set_chat_profiles",
|
||
|
|
"set_starters",
|
||
|
|
"sleep",
|
||
|
|
"step",
|
||
|
|
"user_session",
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
def __dir__():
|
||
|
|
return __all__
|