koishi-plugin-koishiaimix
Version:
基于AiHubMix API的AI对话和绘图插件,支持多种AI模型的聊天对话和图像生成功能,现已支持xAI Grok绘图
170 lines (169 loc) • 3.95 kB
TypeScript
export interface ChatMessage {
role: 'system' | 'user' | 'assistant';
content: string | Array<{
type: 'text' | 'image_url';
text?: string;
image_url?: {
url: string;
};
}>;
}
export interface ChatRequest {
model: string;
messages: ChatMessage[];
max_tokens?: number;
temperature?: number;
stream?: boolean;
}
export interface ChatResponse {
choices: Array<{
message: {
role: string;
content: string;
};
finish_reason: string;
}>;
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
export interface ImageRequest {
model: string;
prompt: string;
n?: number;
size?: string;
quality?: string;
moderation?: 'low' | 'auto';
background?: 'transparent' | 'opaque' | 'auto';
}
export interface ImageResponse {
data: Array<{
b64_json?: string;
url?: string;
revised_prompt?: string;
}>;
usage?: {
input_tokens: number;
output_tokens: number;
total_tokens: number;
};
}
export interface GeminiImageRequest {
model: string;
messages: Array<{
role: string;
content: string;
}>;
modalities: string[];
temperature?: number;
}
export interface GeminiImageResponse {
choices: Array<{
message: {
content?: string;
multi_mod_content?: Array<{
text?: string;
inline_data?: {
data: string;
mimeType: string;
};
}>;
};
}>;
usage?: {
input_tokens: number;
output_tokens: number;
total_tokens: number;
};
}
export interface ModelInfo {
id: string;
object: string;
created: number;
owned_by: string;
root?: string;
}
export interface ModelsResponse {
data: ModelInfo[];
}
export interface ImagenRequest {
model: string;
prompt: string;
config: {
number_of_images: number;
aspect_ratio: string;
};
}
export interface ImagenResponse {
generated_images: Array<{
image: {
image_bytes: string;
};
}>;
}
export interface XAIImageRequest {
model: string;
prompt: string;
n?: number;
size?: string;
quality?: string;
}
export interface XAIImageResponse {
data: Array<{
url?: string;
b64_json?: string;
revised_prompt?: string;
}>;
usage?: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
export declare class AiHubMixAPI {
private apiKey;
private baseUrl;
private timeout;
private retryCount;
private client;
private logger;
constructor(apiKey: string, baseUrl: string, timeout?: number, retryCount?: number);
/**
* 发送聊天请求
*/
chat(request: ChatRequest): Promise<ChatResponse>;
/**
* 发送图像生成请求
*/
generateImage(request: ImageRequest): Promise<ImageResponse>;
/**
* 发送Gemini智绘请求
*/
generateImageWithGemini(request: GeminiImageRequest): Promise<GeminiImageResponse>;
/**
* 发送Imagen绘图请求
*/
generateImageWithImagen(request: ImagenRequest): Promise<ImagenResponse>;
/**
* 发送xAI绘图请求
*/
generateImageWithXAI(request: XAIImageRequest, xaiApiKey: string, xaiBaseUrl: string): Promise<XAIImageResponse>;
/**
* 获取可用模型列表
*/
getModels(): Promise<ModelsResponse>;
/**
* 发送图像编辑请求
*/
editImage(image: Buffer, prompt: string, mask?: Buffer, options?: Partial<ImageRequest>): Promise<ImageResponse>;
/**
* 错误处理
*/
private handleError;
/**
* 测试API连接
*/
testConnection(): Promise<boolean>;
}