Skip to content

Design typed model struct with registry and config#326

Open
svilupp wants to merge 2 commits intomainfrom
claude/model-struct-design-vHoQu
Open

Design typed model struct with registry and config#326
svilupp wants to merge 2 commits intomainfrom
claude/model-struct-design-vHoQu

Conversation

@svilupp
Copy link
Copy Markdown
Owner

@svilupp svilupp commented Dec 25, 2025

  • Add TokenUsage struct for standardized token tracking across providers with fields for input/output, cache (read/write), reasoning, audio tokens
  • Add usage field to AIMessage, DataMessage, AIToolRequest for unified tracking
  • Add extract_usage(schema, resp) dispatched by provider schema
  • Add call_cost_with_cache with provider-specific cache discounts:
    • OpenAI GPT-4: 50% read discount
    • Anthropic: 90% read discount, 25% write premium
    • Gemini/GPT-5: 90% read discount
  • Add build_message utility for unified message construction
  • Add extract_log_prob utility for OpenAI-style responses
  • Refactor response_to_message in llm_openai_chat.jl to use new utilities
  • Refactor message construction in llm_anthropic.jl and llm_ollama.jl
  • Add comprehensive tests in test/usage.jl

claude and others added 2 commits December 25, 2025 14:38
- Add TokenUsage struct for standardized token tracking across providers
  with fields for input/output, cache (read/write), reasoning, audio tokens
- Add usage field to AIMessage, DataMessage, AIToolRequest for unified tracking
- Add extract_usage(schema, resp) dispatched by provider schema
- Add call_cost_with_cache with provider-specific cache discounts:
  - OpenAI GPT-4: 50% read discount
  - Anthropic: 90% read discount, 25% write premium
  - Gemini/GPT-5: 90% read discount
- Add build_message utility for unified message construction
- Add extract_log_prob utility for OpenAI-style responses
- Refactor response_to_message in llm_openai_chat.jl to use new utilities
- Refactor message construction in llm_anthropic.jl and llm_ollama.jl
- Add comprehensive tests in test/usage.jl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants