Minimalistic chatbot ui using fastapi, fastui and langchain.
Project description
fastui-chat
A minimalistic ChatBot Interface in pure python.
Build on top of FastUI and LangChain Core.
Usage
pip install fastui-chat
from fastui_chat import ChatUI
# chatui inherits from FastAPI so you can use it as a FastAPI app
app = ChatUI()
# Run with:
# uvicorn examples.minimal:app
# for hot reloading:
# uvicorn examples.minimal:app --reload
# or use the built-in method
if __name__ == "__main__":
app.start_with_uvicorn()
Extend FastAPI
You can also only use the router and extend your existing FastAPI app.
from fastapi import FastAPI
from fastui_chat import create_chat_handler, create_history_factory
from fastui_chat.chat import ChatAPIRouter
from fastui_chat.history import InMemoryChatMessageHistory
from fastui_chat.runtime import router as fastui_runtime
# callable that returns a ChatMessageHistory given a session_id
history_factory = create_history_factory(
# swap out with any from langchain_community.chat_message_histories
InMemoryChatMessageHistory,
)
# a chat handler generates an AIMessage based on a given HumanMessage and ChatHistory
chat_handler = create_chat_handler(
llm="openai/gpt-4-turbo-preview",
history_factory=history_factory,
)
# setup your fastapi app
app = FastAPI()
# add the chatui router to your app
app.include_router(
ChatAPIRouter(history_factory, chat_handler),
prefix="/api",
)
# make sure to add the runtime router as latest since it has a catch-all route
app.include_router(fastui_runtime)
# start the server with `uvicorn examples.fastapi_router:app`
Features
- Python Only
- Easy to use
- Minimalistic & Lightweight
- LangChain Compatible
- FastAPI Compatible
- Parallel Chat Sessions
- Switchable ChatHistory Backends
- Insert your custom chat handler
Development Setup
git clone https://github.com/shroominic/fastui-chat.git && cd fastui-chat
./dev-install.sh
Roadmap
If you want to contribute or see whats coming soon checkout the roadmap.todo file for open todos.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastui_chat-0.3.4.tar.gz.
File metadata
- Download URL: fastui_chat-0.3.4.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8360fa47e84a1f797b14074094cc073f35d4074cc084f16952a27f7ebbf64b02
|
|
| MD5 |
0b35ba74619f411de14d6841675a528d
|
|
| BLAKE2b-256 |
7af1caee6cf311e8405f85b5e19b0e6e492a93d15a1c7571d737ce0f3a01c1ae
|
File details
Details for the file fastui_chat-0.3.4-py3-none-any.whl.
File metadata
- Download URL: fastui_chat-0.3.4-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e60b9d927e9f7ebe7eb5a755bef2445e6b7f29d913f00f67c075b7f5be5eb59
|
|
| MD5 |
373d64701ddf9e7b4ab84931abb59732
|
|
| BLAKE2b-256 |
9ea60dfe54a394a60a6ea8c84e36eb1e1aa623122c1ccf6fc3f667070be36707
|