@nomyx/assistant
Version:
A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)
82 lines (70 loc) • 1.82 kB
text/typescript
import { ChatMessage, ChatOptions, ProviderResponse as GlobalProviderResponse } from '../../../types/chat';
import { Tool as GlobalTool, StandardizedToolCall } 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[];
};