How shivamagrahari055/aitraining works
The repository contains two chat paths: the documented lightweight OpenAI client/streaming agent, and a provider-neutral runtime with OpenAI and Gemini adapters and tool execution. The README establishes the simple user workflow; sampled source and the SOURCE INDEX support the framework relationships. The direct client implementation and CLI are not excerpted, so their internal links are limited to documented behavior.
Main entry points: agent.py AgentRuntime · openai/provider.py OpenAI provider · gemini/provider.py Gemini provider · response.py Stream events
Components 16
Simple chat
- Streaming Agent
src/agent/agent.py - LLMClient
src/client/llmclient.py
Agent runtime
- AgentRuntime
src/llm/agent.py - Provider factory
src/llm/factory.py - Chat and tool models
src/llm/base.py
Provider adapters
- OpenAI provider
src/llm/openai/provider.py - Gemini provider
src/llm/gemini/provider.py - OpenAI parser
src/llm/openai/parser.py - Gemini parser
src/llm/gemini/parser.py
Events and messages
- Stream events
src/llm/response.py - Agent events
src/agent/event.py
Other components
- Chat user
- OpenAI API
- Tool executor
- OpenAI service
- Gemini service
Connections 22
- Chat user → Streaming Agent: sends prompt
README.md - Streaming Agent → LLMClient: requests stream
src/agent/agent.py - LLMClient → OpenAI API: requests completions
README.md - Streaming Agent → Agent events: emits events
src/agent/agent.py - Agent events → Stream events: uses usage type
src/agent/event.py - Chat user → AgentRuntime: submits prompt
- AgentRuntime → Chat and tool models: builds history
src/llm/agent.py - AgentRuntime → Stream events: consumes events
src/llm/agent.py - AgentRuntime → Tool executor: executes calls
src/llm/agent.py - Provider factory → OpenAI provider: creates provider
src/llm/factory.py - Provider factory → Gemini provider: creates provider
src/llm/factory.py - AgentRuntime → OpenAI provider: requests generation
- AgentRuntime → Gemini provider: requests generation
- OpenAI provider → OpenAI parser: parses responses
src/llm/openai/provider.py - Gemini provider → Gemini parser: parses responses
src/llm/gemini/provider.py - OpenAI parser → Stream events: normalizes to
src/llm/openai/parser.py - Gemini parser → Stream events: normalizes to
src/llm/gemini/parser.py - OpenAI provider → Chat and tool models: converts messages
src/llm/openai/provider.py - Gemini provider → Chat and tool models: uses message models
src/llm/gemini/provider.py - OpenAI provider → OpenAI service: calls completion API
src/llm/openai/provider.py - Gemini provider → Gemini service: calls generate API
src/llm/gemini/provider.py - Chat user → Provider factory: selects provider