Skip to main content

Minimalistic chatbot ui using fastapi, fastui and langchain.

Project description

fastui-chat

Version Downloads license Twitter Follow

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastui_chat-0.3.4.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

fastui_chat-0.3.4-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

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

Hashes for fastui_chat-0.3.4.tar.gz
Algorithm Hash digest
SHA256 8360fa47e84a1f797b14074094cc073f35d4074cc084f16952a27f7ebbf64b02
MD5 0b35ba74619f411de14d6841675a528d
BLAKE2b-256 7af1caee6cf311e8405f85b5e19b0e6e492a93d15a1c7571d737ce0f3a01c1ae

See more details on using hashes here.

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

Hashes for fastui_chat-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7e60b9d927e9f7ebe7eb5a755bef2445e6b7f29d913f00f67c075b7f5be5eb59
MD5 373d64701ddf9e7b4ab84931abb59732
BLAKE2b-256 9ea60dfe54a394a60a6ea8c84e36eb1e1aa623122c1ccf6fc3f667070be36707

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page