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.5.tar.gz (23.3 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.5-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_intake_bot-0.1.5.tar.gz
  • Upload date:
  • Size: 23.3 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.5.tar.gz
Algorithm Hash digest
SHA256 2b462c4f0854dc9a018e8980b0d6d8cd94820adb7d2e7cf2a87843d6b1bf58d7
MD5 380bc35f9124e61bbc40fea2e4195051
BLAKE2b-256 789ed5644b11a5062de6cccca1486f68c4b5a922a799c453d6f15e6e314d64ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_intake_bot-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 23.9 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e55221ff71c1249c03f3f44ebdac98281c3f417aefb3f92de392e2abd04b49e9
MD5 f36d400c13a894db71d993b37948d5c6
BLAKE2b-256 2db136d6df4586ae87a7e36c029f1834683e9b485ccbfdb4a455721922086cbc

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