docs: Update GEMINI.md with backend API endpoints and frontend architecture details

This commit is contained in:
Yunxiao Xu
2026-02-12 01:46:00 -08:00
parent dcfc090f1c
commit 50278a7c17

View File

@@ -8,8 +8,39 @@ This project is an Election Analytics Chatbot built with a modern, stateful, and
- **[Frontend](./frontend/GEMINI.md)**: React application for user interaction. - **[Frontend](./frontend/GEMINI.md)**: React application for user interaction.
## Key Technologies ## Key Technologies
- **Backend**: LangGraph, LangChain, OpenAI/Google Gemini, PostgreSQL. - **Backend**: LangGraph, LangChain, OpenAI/Google Gemini, PostgreSQL, FastAPI.
- **Frontend**: React, TypeScript, Vite. - **Frontend**: React, TypeScript, Vite, Tailwind CSS, Shadcn UI.
## Backend API (`/api/v1`)
The backend provides a versioned REST and Streaming API:
### Authentication (`/auth`)
- `POST /register`: New user registration.
- `POST /login`: Email/password login setting an `access_token` HttpOnly cookie.
- `POST /logout`: Clears the authentication cookie.
- `GET /me`: Returns the current authenticated user's profile.
- `GET /oidc/login` & `/oidc/callback`: Full OIDC/SSO integration.
### Agent execution (`/chat`)
- `POST /stream`: A stateful SSE (Server-Sent Events) endpoint that streams the LangGraph agent's reasoning steps, model chunks, and generated plots in real-time.
### History Management (`/conversations`)
- `GET /`: List all conversations for the current user.
- `POST /`: Create a new conversation.
- `GET /{id}/messages`: Retrieve full message history including step-by-step reasoning.
- `PATCH /{id}`: Rename or update conversation summaries.
- `DELETE /{id}`: Persistent deletion of chat history.
### Artifacts (`/artifacts`)
- `GET /plots/{plot_id}`: Secure binary retrieval of generated analysis charts (PNG).
## Frontend Architecture
The frontend is a modern SPA (Single Page Application) designed for data-heavy interactions:
- **State Management**: React-based state with Axios interceptors for automatic session handling (401 redirects).
- **Authentication**: Seamlessly handles both traditional and OIDC login flows, persisting sessions via browser-native cookie handling.
- **UI System**: Built with Shadcn UI and Tailwind CSS, featuring a responsive sidebar-based layout for conversation management.
- **Real-time Visualization**: Supports streaming text responses and immediate rendering of base64-encoded or binary-retrieved analysis plots.
## Documentation ## Documentation
- **[Backend Guide](./backend/GEMINI.md)**: Detailed information about the backend architecture, migration goals, and implementation steps. - **[Backend Guide](./backend/GEMINI.md)**: Detailed information about the backend architecture, migration goals, and implementation steps.