Skip to content

Requester

模型请求器用于向不同平台发送模型推理或向量嵌入请求,并提供统一的参数定义与工具方法。

接口:BaseRequestParams

typescript
export interface BaseRequestParams {
    timeout?: number
    signal?: AbortSignal
    model?: string
}
  • timeout: 请求超时时间(毫秒)。
  • signal: 用于取消请求的 AbortSignal
  • model: 指定的模型名称。

接口:ModelRequestParams

typescript
export interface ModelRequestParams extends BaseRequestParams {
    temperature?: number
    maxTokens?: number
    topP?: number
    frequencyPenalty?: number
    presencePenalty?: number
    n?: number
    logitBias?: Record<string, number>
    user?: string
    stop?: string[] | string
    input: BaseMessage[]
    id?: string
    tools?: StructuredTool[]
    variables?: Record<string, any>
}

在基础参数的基础上扩展了对话生成常用的采样、停止词、工具调用等配置,input 为必填的消息数组。variables 可在请求前传递额外的上下文变量。

接口:EmbeddingsRequestParams

typescript
export interface EmbeddingsRequestParams extends BaseRequestParams {
    input: string | string[]
}

嵌入请求的输入既可以是单条文本,也可以是文本数组。

接口:BaseRequester

typescript
export interface BaseRequester {
    init(): Promise<void>
    dispose(): Promise<void>
    logger: Logger
}

所有请求器都会暴露 Koishi 的 Logger,可用于输出调试信息。

抽象类:ModelRequester

ModelRequester 实现了 BaseRequester 并封装了通用的错误重试、HTTP 请求与结果聚合逻辑。

modelRequester.completion()

调用 completionStream() 并将流式结果聚合为最终的 ChatGeneration

modelRequester.completionStream()

生成模型的流式响应。实现类需要覆写 completionStreamInternal() 以提供具体的请求逻辑。

modelRequester.init()

  • 返回值: Promise<void>

初始化请求器,默认实现为空,可在子类中扩展。

modelRequester.dispose()

  • model: string | undefined
  • id: string | undefined
  • 返回值: Promise<void>

释放请求器资源,默认实现为空。

modelRequester.post()

  • url: string
  • data: any
  • params: RequestInit
  • 返回值: Promise<Response>

向当前平台发送 POST 请求,会自动补齐认证头并清理 undefined 字段。

modelRequester.get()

  • url: string
  • headers: Record<string, string> | undefined
  • params: RequestInit
  • 返回值: Promise<Response>

发送 GET 请求并附加默认请求头。

modelRequester.buildHeaders()

  • 返回值: Record<string, string>

根据当前配置生成默认的 HTTP 头部信息。

modelRequester.concatUrl()

  • url: string
  • 返回值: string

将相对地址拼接到平台配置的 apiEndpoint,自动补足 /v1/ 前缀及斜杠。

接口:EmbeddingsRequester

typescript
export interface EmbeddingsRequester {
    embeddings(params: EmbeddingsRequestParams): Promise<number[] | number[][]>
}

嵌入请求器需要实现 embeddings() 方法,以返回单条或批量的向量结果。

页面历史

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