Skip to content

平台客户端

字数
500 字
阅读时间
3 分钟

平台客户端负责声明平台能力、刷新模型列表并按模型名创建模型实例。

抽象类:BasePlatformClient

ts
export abstract class BasePlatformClient<
  T extends ClientConfig = ClientConfig,
  R = ChatLunaChatModel | ChatLunaBaseEmbeddings | ChatLunaReranker,
>

constructor()

  • ctx: Context
  • configPool: ClientConfigPool<T>

client.platform

  • 类型: PlatformClientNames

平台名称。

client.isAvailable()

  • config: RunnableConfig | undefined
  • 返回值: Promise<boolean>

检查配置是否可用。内部会调用 init() 并按配置重试。

client.getModels()

  • config: RunnableConfig | undefined
  • 返回值: Promise<ModelInfo[]>

获取并缓存模型列表。模型会自动补齐 ModelCapabilities.TextInput,图片生成模型除外。

client.init()

  • config: RunnableConfig | undefined
  • 返回值: Promise<void>

默认调用 getModels()

client.refreshModels()

  • config: RunnableConfig | undefined
  • 返回值: Promise<ModelInfo[]>

子类必须实现,返回平台支持的模型列表。

client.getFileHandlingConfig()

  • 返回值: FileHandlingConfig | null

声明平台对内联文件输入的支持。默认返回 null

client.createModel()

  • model: string
  • 返回值: R

创建并缓存模型实例。实际创建逻辑由子类 _createModel() 实现。

子类

PlatformModelClient

只提供语言模型,createModel() 返回 ChatLunaChatModel

额外方法:

  • clearContext(): Promise<void>

PlatformEmbeddingsClient

只提供嵌入模型,createModel() 返回 ChatLunaBaseEmbeddings

PlatformModelAndEmbeddingsClient

同时提供语言模型和嵌入模型。

PlatformRerankerClient

只提供 reranker,createModel() 返回 ChatLunaReranker

PlatformModelEmbeddingsAndRerankerClient

同时提供语言模型、嵌入模型和 reranker。

接口:FileHandlingConfig

ts
export interface FileHandlingConfig {
  supportedMimeTypes: Set<string>
  maxTotalSizeBytes: number
  maxFileSizeBytes: number
  maxFileSizeBytesOverrides?: Record<string, number>
}

字段说明:

  • supportedMimeTypes: 平台支持内联发送的 MIME 类型。
  • maxTotalSizeBytes: 单次消息所有内联文件的最大总大小。
  • maxFileSizeBytes: 单个文件默认最大大小。
  • maxFileSizeBytesOverrides: 针对特定 MIME 类型的单文件大小覆盖。

接口:ModelInfo

ts
export interface ModelInfo {
  name: string
  type: ModelType
  maxTokens: number
  capabilities: ModelCapabilities[]
}

ModelType 包含 allllmembeddingsreranker

ModelCapabilities 包含 TextInputToolCallImageInputThinkingImageGenerationAudioInputVideoInputFileInput

页面历史

在 CC-BY-SA-4.0 许可下发布