Skip to content

Add Anthropic/Claude as an AI provider #1

@akuligowski9

Description

@akuligowski9

Summary

Add Claude (Anthropic) as a fourth AI provider option alongside Gemini, OpenAI, and Ollama.

Context

The AiSummarizer service already supports three providers via a callProvider() dispatch method. Each provider has its own private method (summarizeItemsWithGemini, summarizeItemsWithOpenAI, summarizeItemsWithOllama) that builds the HTTP request, parses the response, and returns enriched items. Adding a new provider means following this exact pattern.

What to do

  1. Add env vars to config/ai.php: ANTHROPIC_API_KEY, DIGEST_AI_MODEL_ANTHROPIC (default: claude-sonnet-4-5-20250929)
  2. Add summarizeItemsWithAnthropic() to AiSummarizer — use the Messages API with response_format: { type: "json" }
  3. Add 'anthropic' case to callProvider()
  4. Add env vars to .env.example with comments
  5. Add tests: happy path + missing API key placeholder (follow existing test pattern in AiSummarizerTest)

Files to modify

  • config/ai.php
  • app/Services/AiSummarizer.php
  • .env.example
  • tests/Unit/AiSummarizerTest.php

Reference

Look at summarizeItemsWithOpenAI() as the closest pattern — Anthropic's Messages API is similar (JSON body, bearer token, structured response).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions