UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

62 lines (50 loc) 1.85 kB
import { AIBaseModelCard } from 'model-bank'; import OpenAI from 'openai'; import { ChatMethodOptions, ChatStreamPayload, CreateImagePayload, CreateImageResponse, Embeddings, EmbeddingsOptions, EmbeddingsPayload, GenerateObjectOptions, GenerateObjectPayload, ModelRequestOptions, PullModelParams, TextToImagePayload, TextToSpeechOptions, TextToSpeechPayload, } from '../types'; /* eslint-disable sort-keys-fix/sort-keys-fix , typescript-sort-keys/interface */ export interface LobeRuntimeAI { baseURL?: string; chat?(payload: ChatStreamPayload, options?: ChatMethodOptions): Promise<Response>; generateObject?(payload: GenerateObjectPayload, options?: GenerateObjectOptions): Promise<any>; embeddings?(payload: EmbeddingsPayload, options?: EmbeddingsOptions): Promise<Embeddings[]>; models?(): Promise<any>; textToImage?: (payload: TextToImagePayload) => Promise<string[]>; createImage?: (payload: CreateImagePayload) => Promise<CreateImageResponse>; textToSpeech?: ( payload: TextToSpeechPayload, options?: TextToSpeechOptions, ) => Promise<ArrayBuffer>; // 模型管理相关接口 pullModel?(params: PullModelParams, options?: ModelRequestOptions): Promise<Response>; } /* eslint-enabled */ export abstract class LobeOpenAICompatibleRuntime { abstract baseURL: string; abstract client: OpenAI; abstract chat(payload: ChatStreamPayload, options?: ChatMethodOptions): Promise<Response>; abstract createImage(payload: CreateImagePayload): Promise<CreateImageResponse>; abstract generateObject( payload: GenerateObjectPayload, options?: GenerateObjectOptions, ): Promise<Record<string, any>>; abstract models(): Promise<AIBaseModelCard[]>; abstract embeddings( payload: EmbeddingsPayload, options?: EmbeddingsOptions, ): Promise<Embeddings[]>; }