Anthropic Claude
Anthropic은 신뢰할 수 있고, 해석 가능하며, 조정 가능한 AI 시스템을 구축하는 AI 안전 회사입니다. 대표 모델 제품군은 Claude이며, 사려 깊은 대화, 콘텐츠 생성, 복잡한 추론, 코딩 등에서 뛰어납니다.
sgcWebSockets 라이브러리는 Anthropic Claude API와 상호 작용하기 위한 Delphi 구성 요소 TsgcHTTP_API_Anthropic을 제공합니다.
Anthropic API
Anthropic API는 AI 기반 애플리케이션 구축을 위한 Claude 모델에 대한 액세스를 제공합니다. API는 텍스트 생성, 비전(이미지 이해), 도구 사용(함수 호출), 확장된 사고, 문서/PDF 처리, 프롬프트 캐싱, 인용, 웹 검색, 스트리밍, 토큰 계산 및 메시지 배치를 지원합니다.
Features
구성
Anthropic API는 인증에 API 키를 사용합니다. Anthropic Console의 API Keys 페이지를 방문하여 요청에 사용할 API 키를 검색하십시오.
API 키는 비밀임을 기억하십시오! 다른 사람과 공유하거나 클라이언트 측 코드에 노출하지 마십시오.
이 API Key는 구성 요소의 AnthropicOptions.ApiKey 속성에 구성되어야 합니다. AnthropicOptions.AnthropicVersion 속성은 API 버전을 지정합니다(기본값: 2023-06-01).
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'YOUR_API_KEY';
Properties
AnthropicOptions
- ApiKey: Anthropic API로 인증하기 위한 API 키입니다.
- AnthropicVersion: API 버전 문자열입니다(기본값: 2023-06-01).
- BetaHeaders: 사전 릴리스 API 기능을 활성화하는 선택적 베타 기능 헤더입니다(예: files-api-2025-04-14, mcp-client-2025-11-20).
- HttpOptions: HTTP 연결 설정.
- ReadTimeout: HTTP 응답을 읽기 위한 타임아웃(밀리초). 기본값은 0(타임아웃 없음)입니다.
- LogOptions: 로깅 구성입니다.
- Enabled: True인 경우 HTTP 요청 및 응답이 파일에 기록됩니다.
- FileName: 로그 출력이 기록되는 파일 경로입니다.
- RetryOptions: 실패한 API 요청에 대한 자동 재시도 구성입니다.
- Enabled: True인 경우 실패한 요청이 자동으로 재시도됩니다.
- Retries: 최대 재시도 횟수.
- Wait: 재시도 시도 간 대기 시간(밀리초).
메시지
텍스트 및/또는 이미지 콘텐츠가 포함된 입력 메시지의 구조화된 목록을 보내면, 모델이 대화의 다음 메시지를 생성합니다.
- CreateMessage: 지정된 모델과 매개변수로 메시지를 생성합니다.
- Model: 사용할 모델입니다(예: claude-sonnet-4-20250514).
- Message: 사용자 메시지 콘텐츠입니다.
- MaxTokens: 생성할 최대 토큰 수입니다(필수, 기본값 4096).
- CreateMessageWithSystem: 시스템 프롬프트로 메시지를 생성합니다.
- System: assistant의 동작을 설정하는 시스템 프롬프트입니다.
- CreateMessageStream: 스트리밍(SSE)이 활성화된 메시지를 생성합니다. 이벤트는 OnHTTPAPISSE 이벤트 처리기를 통해 전달됩니다.
- CreateMessageJSON: 제공된 JSON Schema를 준수하는 구조화된 JSON을 반환하는 메시지를 생성합니다.
- Schema: 출력 형식을 정의하는 JSON Schema 문자열.
- CreateMessageWithThinking: extended thinking이 활성화된 메시지를 생성합니다.
- BudgetTokens: thinking에 대한 최대 토큰 예산(최소 1024).
- CreateDocumentMessage: base64 문서(PDF 또는 텍스트)가 있는 메시지를 생성합니다.
- DocumentBase64: base64로 인코딩된 문서 데이터.
- MediaType: MIME 유형(예: application/pdf).
Vision
Claude는 메시지 내에서 base64로 인코딩된 콘텐츠 블록으로 전달된 이미지를 이해할 수 있습니다.
- CreateVisionMessage: 텍스트 프롬프트와 함께 이미지를 보냅니다.
- ImageBase64: base64 인코딩된 이미지 데이터.
- MediaType: MIME 유형(image/jpeg, image/png, image/gif, image/webp).
- Prompt: 이미지에 동반되는 텍스트 프롬프트.
도구 사용
Claude는 도구(function calling)를 사용하여 외부 시스템과 상호작용할 수 있습니다. 도구를 이름, 설명 및 입력 스키마와 함께 정의하면, Claude는 도구를 호출하려고 할 때 tool_use content 블록을 생성합니다.
모델
사용 가능한 Claude 모델을 나열하고 설명합니다.
- GetModels: 사용 가능한 모든 모델을 나열합니다.
- GetModel: 특정 모델에 대한 정보를 검색합니다.
Extended Thinking
확장 사고(Extended thinking)는 Claude가 응답하기 전에 단계별로 추론할 수 있게 하여 수학, 코딩 및 분석과 같은 복잡한 작업의 품질을 향상시킵니다.
- ThinkingType: thinking를 활성화하려면 'enabled'로, 끄려면 'disabled'로 설정하십시오.
- ThinkingBudgetTokens: thinking을 위한 토큰 예산(최소 1024, MaxTokens보다 작아야 함)입니다.
- CreateMessageWithAdaptiveThinking: 적응형 thinking으로 메시지를 생성하여, Claude가 thinking 깊이를 자동으로 결정하게 합니다.
Documents
Claude는 콘텐츠 블록으로 전송된 PDF 문서와 텍스트 파일을 처리할 수 있습니다. base64, 텍스트 및 URL 소스 유형을 지원합니다.
- CreateDocumentMessage: 텍스트 프롬프트와 함께 문서를 보냅니다.
- DocumentBase64: base64 인코딩된 문서 데이터.
- MediaType: MIME 유형(application/pdf, text/plain).
Prompt Caching
API 호출 간에 자주 사용되는 컨텍스트(system 프롬프트, 콘텐츠 블록, 도구 정의)를 캐시하여 캐시 읽기에서 비용을 최대 90% 절감합니다.
- SystemCacheControl: system prompt를 캐시하려면 요청에서 True로 설정하십시오.
- CacheControl: 콘텐츠 블록 또는 도구 정의에서 'ephemeral'로 설정하십시오.
- BetaHeaders: AnthropicOptions의 선택적 베타 기능 헤더입니다.
인용
citation이 활성화된 상태로 문서가 전송되면 Claude는 응답에 소스 참조를 포함합니다. Citation 유형에는 char_location(텍스트), page_location(PDF), content_block_location(사용자 정의 콘텐츠) 및 web_search_result_location(웹 검색)이 포함됩니다.
Web Search
Claude는 내장 web_search 도구를 사용하여 실시간 정보를 위해 웹을 검색할 수 있습니다. 다른 내장 도구로는 code_execution과 computer use가 있습니다.
- CreateMessageWithWebSearch: 웹 검색이 활성화된 메시지를 생성합니다.
- Model: 사용할 모델.
- Message: 사용자 쿼리.
Token Counting
메시지를 보내기 전에 메시지의 토큰 수를 계산합니다.
- CountTokens: 메시지에 대한 입력 토큰 수를 계산합니다.
- Model: 토큰 계산에 사용할 모델.
- Message: 토큰을 계산할 메시지 콘텐츠.
Message Batches
Message Batches API를 사용하면 대량의 메시지를 비동기적으로 처리할 수 있습니다.
- ListBatches: 모든 메시지 배치를 나열합니다.
- GetBatch: ID로 특정 배치를 검색합니다.
- CancelBatch: 아직 처리 중인 배치를 취소합니다.
- GetBatchResults: 완료된 배치의 결과를 검색합니다.
구조화된 출력(Structured Outputs)
제공된 JSON Schema를 준수하는 유효한 JSON을 반환하도록 Claude를 강제합니다. 출력 품질 대 비용을 제어하려면 Effort 매개변수와 결합하십시오.
- CreateMessageJSON: JSON 스키마 출력으로 메시지를 생성합니다.
- Schema: 출력 형식을 정의하는 JSON Schema 문자열입니다.
- OutputFormatSchema: (Request 속성) 구조화된 출력을 위한 JSON Schema입니다.
- Effort: (Request 속성) 품질 대 비용을 제어합니다: 'low', 'medium', 'high', 'max'.
- Strict: (Tool 속성) True인 경우 도구 입력이 input_schema와 일치하도록 보장됩니다.
Files API
파일을 업로드, 나열, 검색, 다운로드 및 삭제합니다. 업로드된 파일은 파일 소스 유형의 문서 콘텐츠 블록을 사용하여 메시지에서 참조할 수 있습니다. 베타 헤더 files-api-2025-04-14가 필요합니다.
- UploadFile: 로컬 파일을 업로드합니다. 파일 메타데이터를 반환합니다.
- ListFiles: 페이지네이션과 함께 업로드된 파일을 나열합니다.
- GetFile: 특정 파일의 메타데이터를 검색합니다.
- DownloadFile: 파일 콘텐츠를 다운로드합니다.
- DeleteFile: 파일을 영구적으로 삭제합니다.
Request Parameters
Messages API에서 사용 가능한 추가 요청 매개변수입니다.
- ServiceTier: 우선순위 티어 사용을 제어합니다: 'auto'(기본값) 또는 'standard_only'.
- InferenceGeo: 추론 지역을 제어합니다: 'global'(기본값) 또는 'us'.
- Container: 요청 간에 코드 실행 환경을 재사용하기 위한 Container ID입니다.
- IsError: (콘텐츠 블록 속성) 도구 실행 실패를 나타내려면 tool_result 블록에서 True로 설정하십시오.
- CacheTTL: 확장된 캐시 time-to-live: '5m'(기본값) 또는 '1h'.
- ThinkingType: Claude가 thinking 깊이를 자동으로 결정하도록 하려면 'adaptive'로 설정하십시오.
MCP Connector
Claude를 외부 MCP(Model Context Protocol) 서버에 연결하여 서드파티 도구에 액세스합니다. 베타 헤더 mcp-client-2025-11-20이 필요합니다.
- CreateMessageWithMCP: MCP 서버 연결로 메시지를 생성합니다.
- MCPServerUrl: MCP 서버의 HTTPS URL입니다.
- MCPServerName: 서버의 고유한 이름입니다.
- MCPServers: (Request 속성) ServerType, Url, Name, AuthorizationToken을 가진 MCP 서버 정의 배열입니다.
- MCPServerName: (Tool 속성) ToolType이 'mcp_toolset'일 때 MCP 서버를 참조합니다.