Catalog PyPI
Back to packageRELEASE DETAILS

0.1.0

PyPI

aidiscuss

AI-powered chat application with multi-provider support and embedded web UI

aianthropicchatfastapigroqlangchainllmopenai
Published16 Jan 2026
Direct dependencies29
Transitive dependenciesNot calculated

README

Version 0.1.0 documentation

AIDiscuss

AI-powered chat application with multi-provider support and embedded web UI

AIDiscuss is a modern, production-ready AI chat application that supports multiple LLM providers (Anthropic, OpenAI, Google, Groq) with advanced features like RAG, memory management, and multi-agent conversations. Built with FastAPI and React, distributed as a PyPI package.

Features

  • Multi-Provider Support: Anthropic Claude, OpenAI, Google Gemini, Groq
  • Advanced AI Features: RAG (Retrieval-Augmented Generation), conversation memory, multi-agent orchestration
  • Embedded Web UI: Beautiful React interface bundled with the Python package
  • Multi-Environment Isolation: Automatic data separation for virtual environments vs global installs
  • Secure by Default: Local-only storage, localhost binding, bytecode distribution
  • Production Ready: Structured logging, version checking, graceful error handling

Installation

pip install aidiscuss

Requires Python 3.11+

Usage

aidiscuss

Opens the web UI at http://127.0.0.1:8000

Configuration

On first run, AIDiscuss creates a config file:

  • Virtual env: {venv}/.aidiscuss_data/.env
  • Global: ~/.aidiscuss/.env

API keys are configured through the web UI.

Environment Isolation

Each installation maintains separate data:

venv1/bin/aidiscuss  # Data in venv1/.aidiscuss_data/
venv2/bin/aidiscuss  # Data in venv2/.aidiscuss_data/
aidiscuss            # Global data in ~/.aidiscuss/

API

Key Endpoints

EndpointDescription
GET /healthHealth check
POST /api/chat/streamStreaming chat
GET /api/providersList LLM providers
POST /api/rag/uploadUpload documents

Troubleshooting

Port in use: AIDiscuss auto-finds ports 8000-8100, or set PORT=8080

Custom data dir: Set AIDISCUSS_DATA_DIR=/path/to/data

Logs: ~/.aidiscuss/logs/aidiscuss.log or {venv}/.aidiscuss_data/logs/

Security

Report vulnerabilities via GitHub Security Advisories. Do not open public issues.

License

MIT License - see LICENSE

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 29

Native requirements
29 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
fastapi
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
fastapi>=0.115.0runtime
uvicorn
Environment
{
  "extras": "standard",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
uvicorn[standard]>=0.30.0runtime
starlette
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
starlette>=0.49.1runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic<3.0.0,>=2.4.0runtime
pydantic-settings
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic-settings<3.0.0,>=2.2.0runtime
sqlalchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sqlalchemy<3.0.0,>=2.0.25runtime
aiosqlite
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
aiosqlite>=0.20.0runtime
alembic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
alembic<2.0.0,>=1.13.0runtime
langchain
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain>=1.2.0runtime
langchain-community
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-community>=0.4.0runtime
langchain-core
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-core>=1.2.5runtime
langchain-text-splitters
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-text-splitters>=1.0.0runtime
langchain-anthropic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-anthropic>=1.0.0runtime
langchain-openai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-openai>=1.0.0runtime
langchain-google-genai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-google-genai>=4.0.0runtime
langchain-groq
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langchain-groq>=1.0.0runtime
langgraph
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langgraph>=1.0.0runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers>=3.0.0runtime
chromadb
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
chromadb>=1.0.0runtime
nanoid
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
nanoid>=2.0.0runtime
pypdf
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pypdf>=5.0.0runtime
python-multipart
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
python-multipart>=0.0.18runtime
platformdirs
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
platformdirs>=4.2.0runtime
packaging
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
packaging>=24.0runtime
httpx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx>=0.27.0runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
build>=1.0.0; extra == "dev"runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
twine>=5.0.0; extra == "dev"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest>=8.0.0; extra == "dev"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio>=0.24.0; extra == "dev"runtime

Distribution files

2 collected
aidiscuss-0.1.0-py3-none-any.whl

bdist_wheel · 502.58 KB · Python py3

Source file
aidiscuss-0.1.0.tar.gz

sdist · 473.44 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:31 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:bff4ed7fb00291acfdd0144f8f963ebb33d2189f8b31d99a67fb7ccf5aff1e28

Other collected versions

View all collected versions →