claude-php/claude-3-api
요약
Anthropic의 Claude 3 API와 상호작용하는 PHP SDK가 소개되었습니다. 이 최신 SDK는 메시지 API, 스트리밍, 도구 사용(Function Calling), 비전 기능 등 다양한 고급 기능을 지원합니다. 기존 버전 사용자들은 반드시 새 SDK로 마이그레이션해야 합니다.
핵심 포인트
- Claude 3 API를 위한 강력한 PHP 패키지를 제공합니다.
- 메시지 API, 스트리밍, 함수 호출 등 핵심 기능을 완벽히 지원합니다.
- 비전 기능(이미지 전송)과 프롬프트 캐싱을 통해 효율성을 높였습니다.
- Laravel 및 Symfony와 같은 주요 프레임워크 통합 가이드를 제공합니다.
⚠️ 사용 중단 공지 (DEPRECATION NOTICE)
이 패키지는 더 이상 유지보수되지 않는 사용 중단된(deprecated) 버전입니다. 대신 다음 기능을 제공하는 최신 Claude PHP SDK로 마이그레이션하십시오:
- 공식 Claude Python SDK와 동등한 기능(Like-for-like parity)
- 메시지 API (스트리밍 포함) 완벽 지원
- 도구 사용 및 함수 호출(Tool use and function calling)
- 프롬프트 캐싱(Prompt caching)
- 비전 기능(Vision capabilities)
- 배치 처리(Batch processing) (비용 50% 절감)
- 베타 기능 (확장 출력, 구조화된 출력, 사고 모드(thinking mode))
- 토큰 카운팅
- 포괄적인 문서 및 예제
- 활발한 유지보수 및 업데이트
- 프레임워크 통합 가이드 (Laravel, Symfony)
마이그레이션 가이드: 설치 지침 및 문서는 Claude PHP SDK 저장소를 방문하십시오.
Anthropic의 Claude 3 API와 상호 작용하는 강력한 PHP 패키지로, 텍스트 및 비전 기능을 모두 지원합니다.
- Claude에 메시지를 보내기 위한 사용하기 쉬운 인터페이스 (기본값), OpenAI 및 DeepSeek 지원
- 간단한
chat메서드를 사용하여 텍스트 기반 대화 지원 - 실시간 응답을 위한 스트리밍(Streaming) 지원
- 비전 기능 - 텍스트 프롬프트와 함께 이미지 전송 가능 (Claude 전용)
- 도구 사용 지원 (Claude 전용)
- 성능 및 비용 효율성을 개선하기 위한 프롬프트 캐싱 지원 (Claude 전용)
- 포괄적인 오류 처리
- PHPUnit으로 완벽하게 테스트됨
다음과 같이 composer를 통해 패키지를 설치할 수 있습니다:
composer require claude-php/claude-3-api
단순한 텍스트 기반 상호 작용의 경우, chat 메서드를 사용할 수 있습니다:
단순한 텍스트 기반 상호 작용의 경우, 여러 가지 방법으로 chat 메서드를 사용할 수 있습니다:
- 단일 문자열 메시지 전송:
use Claude\Claude3Api\Client;
use Claude\Claude3Api\Config;
// API 키로 구성 객체 생성
...
- 배열 형태로 단일 메시지 전송:
$response = $client->chat(['role' => 'user',
$response = $client->chat([
['role' => 'user', "content" => "Hello, Claude"],
['role' => 'assistant', "content" => "Hello! It's nice to meet you. How can I assist you today?"],
...
- 모델 지정 또는 최대 토큰 수 지정 (선택 사항):
$response = $client->chat([
'model' => 'claude-3-opus-20240229',
'maxTokens' => 1024,
...
`chat` 메서드는 유연하며 다양한 입력 형식을 처리할 수 있어 여러 시나리오에서 Claude와 상호 작용하기 쉽습니다.
$client->streamMessage('Hello, how are you?', function ($chunk) {
echo $chunk;
});
$client->streamMessage([
['role' => 'user', "content" => "Hello, Claude"],
['role' => 'assistant', "content" => "Hello! It's nice to meet you. How can I assist you today?"],
...
OpenAI API의 Chat Completion 및 Streaming에 대한 지원은 제한적입니다.
use Claude\Claude3Api\Config;
use Claude\Claude3Api\Client;
$apiKey = 'sk-#############################'; // OpenAI API Key
...
DeepSeek API의 Chat Completion 및 Streaming에 대한 지원은 제한적입니다.
use Claude\Claude3Api\Config;
use Claude\Claude3Api\Client;
$apiKey = 'sk-#############################'; // DeepSeek API Key
...
다른 제공업체를 사용하는 유연성은 있지만, 해당 API는 완전히 지원되지 않습니다.
use Claude\Claude3Api\Config;
use Claude\Claude3Api\Client;
$apiKey = 'sk-#############################'; // Other API Key
...
더 복잡한 시나리오의 경우, `MessageRequest` 객체를 사용하여 여전히 `sendMessage` 메서드를 사용할 수 있습니다:
use Claude\Claude3Api\Models\Message;
use Claude\Claude3Api\Models\Content\TextContent;
use Claude\Claude3Api\Requests\MessageRequest;
...
use Claude\Claude3Api\Models\Content\ImageContent;
// 이미지와 텍스트를 모두 포함하여 메시지 전송
$response = $client->sendMessageWithImage('path/to/image.jpg', 'What is in this image?');
...
$client->streamMessage($messageRequest, function ($chunk) {
if ($chunk instanceof MessageResponse) {
// 전체 메시지 응답 처리
...
use Claude\Claude3Api\Models\Tool;
$weatherTool = new Tool(
'get_weather',
...
프롬프트 캐싱(Prompt caching)은 프롬프트의 특정 접두사부터 재개할 수 있도록 허용하여 API 사용을 최적화하는 강력한 기능으로, 토큰 비용과 응답 시간을 줄여줍니다.
use Claude\Claude3Api\Models\Message;
use Claude\Claude3Api\Models\Content\TextContent;
use Claude\Claude3Api\Models\Content\CacheControl;
...
이 라이브러리는 프롬프트 캐싱을 다루기 위한 헬퍼 메서드를 제공합니다:
// 캐시 제어와 함께 텍스트 콘텐츠 생성
$textWithCache = TextContent::withEphemeralCache("캐싱할 대용량 텍스트");
// 응답에서 캐시 통계 확인
...
- 지원되는 모델: Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3.5 Haiku, Claude 3 Haiku, Claude 3 Opus
- 최소 캐싱 가능 프롬프트 길이:
- Claude 3.7 Sonnet, Claude 3.5 Sonnet 및 Claude 3 Opus의 경우 1024 토큰
- Claude 3.5 Haiku 및 Claude 3 Haiku의 경우 2048 토큰
- 캐시는 최소 5분간 유지됩니다.
- 현재는 "ephemeral"(임시) 캐시 유형만 지원됩니다.
이 패키지는 Anthropic의 API가 제공하는 설정 가능한 베타 기능을 지원합니다.
Claude 3.7 Sonnet은 최대 128k 토큰까지 확장된 출력 토큰 제한을 지원합니다. 활성화 방법은 다음과 같습니다:
use Claude\Claude3Api\Config;
use Claude\Claude3Api\Client;
// 메서드 1: 기본 토큰 설정(131072)으로 128k 토큰 출력 활성화
...
이 기능은 단일 API 호출에서 대량의 콘텐츠를 생성하거나 처리할 때 특히 유용합니다.
`composer test``
기여 환영합니다! 언제든지 Pull Request를 제출해 주세요.
이 패키지는 Dale Hurley가 유지 관리하고 있습니다.
Dale을 지원하려면 그의 다른 솔루션을 확인해 보세요:
- Full.CX - AI 기반 명확성과 정밀도로 제품 비전을 실행 가능한 개발 작업으로 변환
- Custom Homework Maker - 고급 AI 기술로 매력적이고 개인화된 숙제를 몇 초 만에 생성
- SpeedBrain - 중독성 있고 속도감 있는 지식 게임으로 자신에게 도전하세요 - 완전히 무료!
- Spotfillr - 자동화된 캐주얼 스팟 관리를 통해 보육 시설이 점유율과 수익을 극대화할 수 있도록 하는 스마트 솔루션
- 1-to-5 App - 이 매력적이고 연구 기반의 감정 학습 동반자와 함께 자녀가 정서 지능(emotional intelligence)을 개발하도록 도와주세요
- RapidReportCard - 성과 검토를 간소화하고 AI 기반 통찰력을 통해 팀의 잠재력을 최대한 발휘하세요
- Risks.io - 지능형 플랫폼을 사용하여 프로젝트 위험에 대비하고 원활한 위험 관리 및 완화를 수행하세요
- TimeLodge - 강력한 시간 추적, 전문 인보이스 발행, 원활한 결제 처리로 비즈니스를 단순화하세요
- ToolNames - 모든 것을 위한 도구와 계산기.
이 Claude 3 API 패키지는 MIT 라이선스 하에 오픈 소스로 공개된 소프트웨어입니다.
문제가 발생하거나 질문이 있는 경우, GitHub 저장소에 이슈를 열어주세요.
본 패키지는 Anthropic과 공식적으로 관련되지 않습니다. 본 패키지를 사용할 때 Anthropic의 서비스 약관을 준수했는지 확인하십시오.
- 프롬프트 캐싱(prompt caching) 지원 추가
- 캐시 설정을 관리하기 위한 CacheControl 모델 추가
- cache_control 매개변수를 지원하도록 TextContent 업데이트
- MessageResponse에 캐시 관련 헬퍼 메서드 추가
- 프롬프트 캐싱 예제 및 모범 사례로 문서 개선
- 테스트 수정
- 엄격한 타입(strict types)을 지원하기 위해 Config 생성자에서 타입 불일치 수정
- Composer 테스트 명령어 추가 - 이제 `composer test`로 테스트를 실행할 수 있습니다.
- 새로운 기능 및 엄격한 타입 호환성을 위한 포괄적인 테스트 스위트 추가
- 기본 모델을 Claude 3.7 Sonnet (`claude-3-7-sonnet-latest`)으로 업데이트
)
- configurable beta 기능을 위한 지원 추가
- Claude 3.7 Sonnet의 128k 토큰 출력 지원 추가
- 베타 기능을 활성화하는 편의 메서드 추가:
`enable128kOutput()`
- 128k 토큰 출력 베타 기능 활성화`enable128kOutputWithTokens()`
- 128k 토큰 출력을 활성화하고 최대 토큰 설정
- 일반적인 베타 기능 관리 메서드 추가:
`enableBetaFeature()`
- 특정 베타 기능 활성화`disableBetaFeature()`
- 특정 베타 기능 비활성화`setBetaFeatures()`
- 여러 베타 기능을 한 번에 구성`isBetaFeatureEnabled()`
- 특정 베타 기능이 활성화되었는지 확인`getBetaFeatures()`
- 구성된 모든 베타 기능 가져오기
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기