Skip to main content

Persona-(session) and RAG-based intake SDK (prototype)

Project description

ai_intake_bot

Minimal SDK for persona-based and RAG-based conversational intake.

What this repo is: an SDK, not an app. No data persistence, no auth system, no background jobs.

Quickstart (persona mode with FakeLLM)

  • Create a venv and install deps:

    python -m venv .venv source .venv/bin/activate python -m pip install -U pip pip install -e ".[dev]"

  • Example (persona, expert_eval) using the FakeLLM for deterministic results:

from ai_intake_bot.core.engine import IntakeBot
from ai_intake_bot.core.llm import FakeLLM

bot = IntakeBot(
    mode="persona",
    template="expert_eval",
    persona="expert_reviewer",
    problem={"description": "Cannot login", "emotional_state": "frustrated", "goals": ["restore access"]},
    api_key="sk-test",
    qdrant_url=None,
    qdrant_api_key=None,
    files=None,
    selection_probability=0.5,
    enable_alerts=True,
    extra_system_prompt=None,
)
bot.set_llm(FakeLLM())
out = bot.handle("Please evaluate this scenario")
print(out)

Using a real LLM (OpenAI)

  • This SDK supports optional, explicit use of a real LLM. It will only call an LLM when you inject one via IntakeBot.set_llm() (so the default is safe for local development and tests).

  • To use OpenAI's API, set OPENAI_API_KEY in your environment and then:

from ai_intake_bot.core.engine import IntakeBot
from ai_intake_bot.core.llm import OpenAIChatLLM

llm = OpenAIChatLLM(model="gpt-4o")
bot = IntakeBot(...)
bot.set_llm(llm)
response = bot.handle("Ask something")

Security model: the SDK never persists secrets to disk. OpenAIChatLLM expects OPENAI_API_KEY to be set and will not log its value.

RAG with Qdrant (dev-friendly)

  • The RAG engine uses a LocalVectorStore by default; if you provide qdrant_url when constructing IntakeBot, the RAG engine will upload chunks to the configured Qdrant instance (ephemeral collection by default) and ground responses on the retrieved documents.

  • For a full integration with LangChain and Qdrant follow the example in scripts/run_qdrant_integration.sh (this script starts a Qdrant Docker container and runs the Qdrant integration test). The integration requires langchain_qdrant, langchain_openai, and an OpenAI key for embeddings.

Demos

  • scripts/demo_persona_openai.py — Runs an expert_eval persona using OpenAI (requires OPENAI_API_KEY).

  • scripts/demo_rag_qdrant.py — Ingests a PDF using LangChain's PyPDFLoader, splits with RecursiveCharacterTextSplitter, embeds with OpenAIEmbeddings, writes to Qdrant (requires QDRANT_URL and OPENAI_API_KEY), and performs a retrieval + chat.

  • scripts/demo_tts.py — Demonstrates the TTS adapters. Prefers macOS say, falls back to pyttsx3, and ultimately to a no-op adapter.

Run demos (examples):

  • Persona demo (OpenAI):

    export OPENAI_API_KEY=<your_key> python scripts/demo_persona_openai.py

  • RAG demo (Qdrant + LangChain):

    export OPENAI_API_KEY=<your_key> export QDRANT_URL=http://localhost:6333 python scripts/demo_rag_qdrant.py

  • TTS demo (local):

    python scripts/demo_tts.py

Security reminder: never commit real API keys. Use .env files for local testing and set CI secrets for integration runs.

AI_INTake

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

ai_intake_bot-0.1.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_intake_bot-0.1.1-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file ai_intake_bot-0.1.1.tar.gz.

File metadata

  • Download URL: ai_intake_bot-0.1.1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ai_intake_bot-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d6e8ea81909e5bb49d25219e06f5ed1a30553f79216e56d8b5996381a9f7571f
MD5 966f5f8e717da77337edf6ededc75d92
BLAKE2b-256 73942b97dd7bc572c5d13b3a5835831acbbf9bbaf10672c35426b8ae56da6bb1

See more details on using hashes here.

File details

Details for the file ai_intake_bot-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ai_intake_bot-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ai_intake_bot-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 29fde0a5aec01b1715ccddb7b286398ce41234c0805dff46bc50fdca0eddac9f
MD5 f3cda383fc06376278d71e717acd6742
BLAKE2b-256 c115999ec3e3ba967068a07bb3524ee4330249fa45d50ff04a6c048ed58b8009

See more details on using hashes here.

Supported by

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