UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

71 lines (70 loc) 1.92 kB
import { ChatMessage, ChatOptions, ProviderResponse as GlobalProviderResponse } from '../../../types/chat'; import { Tool as GlobalTool } from '../../../types/tool'; import { ILogger } from '../../../types/common'; export interface AnthropicProviderConfig { apiKey: string; model: string; } export interface AnthropicConfig extends AnthropicProviderConfig { logger: ILogger; getApiUrl: () => string; } export interface AnthropicChatRequestBody { model: string; messages: AnthropicMessage[]; max_tokens?: number; temperature?: number; stream?: boolean; system?: string; tools?: AnthropicToolSchema[]; } export interface AnthropicMessage { role: 'user' | 'assistant' | 'system'; content: string | AnthropicMessageContent[]; } export type AnthropicMessageContent = AnthropicTextContent | AnthropicToolUseContent; export interface AnthropicTextContent { type: 'text'; text: string; } export interface AnthropicToolUseContent { type: 'tool_use'; id: string; name: string; input: Record<string, any>; } export interface AnthropicChatResponse { id: string; type: 'message'; role: 'assistant'; model: string; content: AnthropicMessageContent[]; stop_reason: string | null; stop_sequence: string | null; usage: { input_tokens: number; output_tokens: number; }; } export interface AnthropicToolSchema { name: string; description?: string; input_schema: { type: string; properties: { [key: string]: { type: string; description?: string; enum?: string[]; }; }; required: string[]; }; } export type Tool = GlobalTool; export type ProviderResponse = GlobalProviderResponse; export type AnthropicCacheKey = { messages: ChatMessage[]; options: ChatOptions; tools?: Tool[]; };