This document contains issue templates for the llmcpp development roadmap. You can either:
- Run
./create_issues.shto create them automatically (requires GitHub CLI) - Copy each issue manually to GitHub
Labels: enhancement, core, high-priority
Milestone: v1.0.0
Description: Implement the core HTTP client for OpenAI API using cpp-httplib.
Tasks:
- Create HTTP client wrapper around cpp-httplib
- Implement authentication with Bearer tokens
- Add request/response serialization with nlohmann/json
- Handle HTTP status codes and error responses
- Add timeout and retry logic
- Support for custom headers and user agents
Acceptance Criteria:
- Can successfully make authenticated requests to OpenAI API
- Proper error handling for network issues, auth failures, rate limits
- JSON request/response serialization works correctly
- Tests cover success and error scenarios
- Documentation includes usage examples
Dependencies: None (foundational feature) Priority: High | Effort: 2-3 days
Labels: enhancement, core, high-priority
Milestone: v1.0.0
Description: Implement the OpenAI Chat Completions API endpoint with full parameter support.
Tasks:
- Implement chat completions request formatting
- Support all OpenAI parameters (temperature, max_tokens, etc.)
- Handle model selection and validation
- Parse chat completions responses
- Extract usage metadata (token counts)
- Support function calling / tools
- Add conversation context management
Acceptance Criteria:
- Can send chat completion requests with custom parameters
- Supports all major OpenAI models (GPT-4, GPT-3.5, etc.)
- Function calling works correctly
- Usage statistics are captured and reported
- Error handling for model not found, invalid parameters
- Tests cover various parameter combinations
Dependencies: Requires OpenAI HTTP Client implementation Priority: High | Effort: 3-4 days
Labels: enhancement, streaming, high-priority
Milestone: v1.0.0
Description: Add streaming support for real-time responses from OpenAI API.
Tasks:
- Implement Server-Sent Events (SSE) parsing
- Add streaming request handling
- Create streaming response callbacks
- Handle partial JSON chunks
- Add stream completion detection
- Error handling during streaming
- Cancellation support
Acceptance Criteria:
- Can receive streaming responses from OpenAI
- Callbacks are triggered for each chunk
- Proper completion detection
- Graceful error handling during streams
- Stream cancellation works correctly
- Tests cover streaming scenarios
Dependencies:
- Requires OpenAI HTTP Client implementation
- Requires Chat Completions API
Priority: High | Effort: 2-3 days
Labels: enhancement, security, medium-priority
Milestone: v1.0.0
Description: Add robust authentication and API key management with security best practices.
Tasks:
- Environment variable support (OPENAI_API_KEY)
- Configuration file support
- API key validation
- Secure storage recommendations
- Multi-provider API key management
- Key rotation support
- Rate limiting awareness
Acceptance Criteria:
- API keys can be set via environment variables
- Keys are masked in logs and debug output
- Invalid keys are detected early
- Documentation includes security best practices
- Support for multiple provider keys
- Tests cover various auth scenarios
Dependencies: Related to OpenAI HTTP Client implementation Priority: Medium | Effort: 1-2 days
Labels: documentation, examples, medium-priority
Milestone: v1.0.0
Description: Create real-world examples showcasing library capabilities.
Tasks:
- Basic chat completion example
- Async request example
- Streaming response example
- Function calling example
- Error handling example
- Configuration management example
- Multi-provider example (when available)
Acceptance Criteria:
- All examples compile and run successfully
- Examples demonstrate best practices
- Clear comments explaining each step
- README includes example descriptions
- Examples work with CI/CD pipeline
Dependencies:
- Requires Core OpenAI implementation
- Requires Streaming support
Priority: Medium | Effort: 1-2 days
Labels: documentation, medium-priority
Milestone: v1.0.0
Description: Generate comprehensive API documentation using Doxygen.
Tasks:
- Create Doxygen configuration file
- Add detailed class and method documentation
- Document all public APIs
- Add usage examples in documentation
- Configure GitHub Pages deployment
- Add documentation CI/CD integration
Acceptance Criteria:
- All public APIs are documented
- Documentation includes usage examples
- Doxygen generates clean HTML output
- Documentation is automatically deployed
- Documentation links work correctly
Dependencies: Requires core implementation complete Priority: Medium | Effort: 2-3 days
Labels: testing, integration, medium-priority
Milestone: v1.1.0
Description: Create integration tests that verify end-to-end functionality with real APIs.
Tasks:
- Set up test API keys (with limited permissions)
- Create integration test suite
- Test real OpenAI API interactions
- Add performance benchmarks
- Test error scenarios (rate limits, network issues)
- Add CI integration for optional API tests
Acceptance Criteria:
- Integration tests verify real API functionality
- Tests can run with or without API keys
- Performance benchmarks establish baselines
- CI can run integration tests securely
- Tests cover error and edge cases
Dependencies:
- Requires Core OpenAI implementation
- Requires Authentication system
Priority: Medium | Effort: 2-3 days
Labels: enhancement, provider, low-priority
Milestone: v2.0.0
Description: Extend the library to support Anthropic's Claude API as a second provider.
Tasks:
- Research Anthropic API structure
- Implement AnthropicClient class
- Add Claude-specific models and parameters
- Update ClientFactory for multi-provider support
- Add Claude-specific examples
- Update documentation for multi-provider usage
Acceptance Criteria:
- Can use Claude API through same interface
- Provider selection works seamlessly
- Claude-specific features are supported
- Examples demonstrate provider switching
- Tests cover both OpenAI and Anthropic
Dependencies:
- Requires Core architecture complete
- Requires OpenAI implementation stable
Priority: Low | Effort: 3-5 days
Labels: packaging, distribution, low-priority
Milestone: v1.2.0
Description: Add support for popular C++ package managers.
Tasks:
- Create vcpkg port file
- Add Conan recipe
- Create CPM integration
- Add installation documentation
- Verify packages work correctly
- Set up automated package publishing
Acceptance Criteria:
- Library can be installed via vcpkg
- Conan package works correctly
- CPM integration is simple
- Documentation covers all installation methods
- CI verifies package installations
Dependencies: Requires stable v1.0.0 release Priority: Low | Effort: 3-4 days
Labels: performance, optimization, low-priority
Milestone: v1.3.0
Description: Optimize performance and establish benchmarks for the library.
Tasks:
- Profile request/response performance
- Optimize JSON serialization
- Add connection pooling
- Implement request caching
- Create benchmark suite
- Memory usage optimization
- Async performance tuning
Acceptance Criteria:
- Benchmark suite measures key metrics
- Performance is competitive with other clients
- Memory usage is reasonable
- Connection pooling improves throughput
- Benchmarks run in CI for regression detection
Dependencies: Requires core implementation complete Priority: Low | Effort: 4-5 days
Total Issues: 10 v1.0.0 Issues: 6 (Core implementation + examples/docs) Future Releases: 4 (Testing, providers, packaging, performance)
Estimated Total Effort: 25-35 development days
Critical Path for v1.0.0:
- OpenAI HTTP Client (foundational)
- Chat Completions API
- Streaming Support
- Authentication
- Examples and Documentation