- Add message ID generation for initial HumanMessage creation
- Implement message converters for LangChain/OpenAI format interoperability
- Update documentation with detailed message format specifications
- Refactor AgentService to use centralized message conversion utilities
- Ensure tool_calls format compliance with OpenAI API standards
Update the AI chat API design documentation to provide comprehensive details about statistics collection during streaming conversations. The documentation now includes:
1. **Enhanced statistics collection logic**:
- Clarified message_count increments for user messages, AI responses, and tool results
- Added LLM call tracking via on_chat_model_start events
- Detailed token counting methodology using LangGraph's usage_metadata
2. **Improved implementation details**:
- Added specific event handlers for statistics collection
- Explained LangGraph's cumulative token counting behavior
- Provided real-world examples of token accumulation
3. **Updated data models**:
- Enhanced ChatSession model documentation with field descriptions
- Separated fields into categories (basic, statistics, timestamps, reserved)
4. **Refined architecture documentation**:
- Added detailed flow for stream_chat method
- Documented statistics collection mechanism during SSE streaming
- Explained batch update strategy to reduce database writes
The changes ensure developers understand how conversation statistics are collected, processed, and stored without impacting streaming performance.
This commit introduces a comprehensive design document outlining the implementation of AI Chat API for GNS3 Copilot Agent within GNS3 Server. The document provides:
- Overview and background on existing components including GNS3 Copilot Agent, LLM configuration management, and API framework
- Reference implementation details from FlowNet-Lab project
- Architecture design with clear component interactions between frontend clients and backend services
- RESTful API specifications for chat streaming, session management, and history retrieval
- Implementation details covering project-based agent management, SQLite checkpoint storage, and LangGraph integration
- Security considerations and deployment guidelines
The design enables clients to interact with GNS3 Copilot Agent through standardized APIs, supporting real-time chat streaming and persistent conversation sessions per project.