feat: implement data layer with comprehensive test infrastructure
- Define SQLModel schemas for Session, Note, and Link entities - Add API request/response models for RPC endpoints - Create LLM structured output models for Zettel extraction - Set up async database initialization with SQLModel and aiosqlite - Implement repository pattern for CRUD operations - Add complete test suite with pytest configuration - Create validation test runner for development workflow - Add .gitignore for Python/FastAPI project security
This commit is contained in:
57
README.md
57
README.md
@@ -81,3 +81,60 @@ SkyTalkAPI: {
|
||||
# Connections to External APIs
|
||||
SkyTalkAPI.Services -> ExternalAPIs.Gemini
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## MVP Features (Phase 1)
|
||||
|
||||
At the completion of this implementation plan, the SkyTalk API will support the
|
||||
following core features:
|
||||
|
||||
- **Session Management:** Start a new interview session based on an initial
|
||||
topic.
|
||||
|
||||
- **RAG-Powered Interviewing:** Engage in a back-and-forth conversation where
|
||||
the AI's questions are informed by existing knowledge in the vector store.
|
||||
|
||||
- **Automatic Session Termination:** The AI can detect a natural conclusion to
|
||||
the conversation.
|
||||
|
||||
- **Asynchronous Synthesis:** Once the interview ends, a background process is
|
||||
triggered to analyze the transcript.
|
||||
|
||||
- **Semantic Segmentation:** The transcript is intelligently broken down into
|
||||
atomic "Zettels" (notes), each focusing on a single concept.
|
||||
|
||||
- **Vector Indexing:** Each new note is converted into a vector embedding and
|
||||
stored for future RAG.
|
||||
|
||||
- **Generative Linking:** The system identifies semantically related notes and
|
||||
uses an LLM to generate a rich, contextual link explaining the relationship
|
||||
between them.
|
||||
|
||||
- **Status Tracking:** Endpoints to check the status of a session (active,
|
||||
processing, completed).
|
||||
|
||||
---
|
||||
|
||||
## Next Steps (Post-MVP)
|
||||
|
||||
- **Authentication:** Implement user accounts and authentication (e.g., JWT) to
|
||||
create user-specific knowledge bases.
|
||||
|
||||
- **Frontend Integration:** Build a web-based frontend (e.g., at
|
||||
www.skytalk.app) that consumes this API.
|
||||
|
||||
- **Knowledge Graph Visualization:** Add endpoints to export the note-and-link
|
||||
structure in a format suitable for graph visualization libraries (e.g., D3.js,
|
||||
Vis.js).
|
||||
|
||||
- **Note Editing and Management:** Provide endpoints for users to manually edit,
|
||||
delete, or merge notes.
|
||||
|
||||
- **Advanced Search:** Implement more sophisticated search functionalities
|
||||
beyond simple semantic search, such as filtering by tags or searching within
|
||||
link contexts.
|
||||
|
||||
- **Scalable Infrastructure:** Migrate from SQLite/embedded ChromaDB to a
|
||||
production-grade database (e.g., PostgreSQL with pgvector) and a managed
|
||||
vector database for scalability.
|
||||
|
||||
Reference in New Issue
Block a user