@zhengxs/wechaty-plugin-assistant
Version:
68 lines (66 loc) • 2.15 kB
TypeScript
import { ChatMessage } from './llm-api';
export declare class APIError extends Error {
statusCode?: number;
statusText?: string;
}
export interface ClaudeAIOptions {
/** @defaultValue `https://claude.ai/api` **/
apiBaseUrl?: string;
apiOrg: string;
sessionKey: string;
/** @defaultValue `claude-2` **/
model?: ClaudeAI.Model;
/** @defaultValue `Asia/Shanghai` **/
timezone?: string;
}
export type ClaudeSendMessageOptions = {
conversationId?: string;
parentMessageId?: string;
messageId?: string;
abortSignal?: AbortSignal;
attachments?: ClaudeAI.Attachment[];
completionParams?: Partial<Omit<ClaudeAI.CompletionParams, 'prompt'>>;
};
export declare class ClaudeAI {
protected _apiBaseUrl: string;
protected _sessionKey: string;
protected _apiOrg: string;
protected _completionParams: Partial<Omit<ClaudeAI.CompletionParams, 'prompt'>>;
constructor(opts: ClaudeAIOptions);
sendMessage(text: string, options?: ClaudeSendMessageOptions): Promise<ChatMessage>;
protected upsertChatConversations(options?: ClaudeSendMessageOptions): Promise<{
conversationId: string;
}>;
protected createChatConversations(): Promise<{
uuid: string;
name: string;
summary: string;
created_at: string;
updated_at: string;
}>;
request(path: string, init: RequestInit): Promise<Response>;
protected defaultHeaders(): Record<string, string>;
protected authHeaders(): Record<string, string>;
protected userAgent(): string;
}
export declare namespace ClaudeAI {
type Model = (string & NonNullable<unknown>) | 'claude-2';
type Attachment = {
file_name?: string;
file_size?: number;
file_type?: string;
extracted_content: string;
totalPages?: number;
};
type CompletionParams = {
model: Model;
timezone?: string;
prompt: string;
};
type ChatCompletionCreateParams = {
conversation_uuid: string;
organization_uuid: string;
completion: CompletionParams;
attachments?: Attachment[];
};
}