419f5e3a89
RAG: switch Postgres to pgvector, chunk and embed the three D&D rulebooks locally via sentence-transformers, and retrieve relevant excerpts per DM turn (query = latest player message) to ground the system prompt. Retrieval runs off the event loop and is capped by a relevance threshold and a max character budget so it can't blow up context size or cost. Game setup wizard: creating a game now opens a short chat where the DM asks about genre, length, and the player's experience level, then proposes a name and description via a tool call. The player can edit both before creating the game. Stateless endpoint — the frontend carries the conversation, no DB needed since the game doesn't exist yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
14 lines
289 B
Plaintext
14 lines
289 B
Plaintext
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
sqlalchemy[asyncio]==2.0.36
|
|
asyncpg==0.30.0
|
|
alembic==1.14.0
|
|
pydantic-settings==2.7.0
|
|
fastapi-users[sqlalchemy]==14.0.1
|
|
openai>=1.50.0,<2.0.0
|
|
aiosmtplib==3.0.2
|
|
python-multipart==0.0.20
|
|
websockets==14.1
|
|
pgvector==0.3.6
|
|
sentence-transformers==3.3.1
|