BaseLLM

June 26, 2026 · View on GitHub


该类在类层次结构中的位置:

[Oxy](../agent/base_oxy.md)
├── [BaseFlow](../agent/base_flow.md)
├── [BaseLLM](./base_llm.md)
│   ├── [RemoteLLM](./remote_llm.md)
│   │   ├── [HttpLLM](./http_llm.md)
│   │   └── [OpenAILLM](./openai_llm.md)
│   ├── [LocalLLM](./local_llm.md)
│   ├── [ActorLLM](./actor_llm.md)
│   ├── [LiteLLM](./lite_llm.md)
│   └── [MockLLM](./mock_llm.md)
└── [BaseTool](../tools/base_tools.md)

简介

BaseLLM 是 OxyGent 系统中所有大语言模型实现的抽象基类。它提供了通用功能,包括多模态输入处理、思考消息的提取与转发、媒体 URL 的 Base64 转换、Token 用量跟踪以及带有用户友好提示的错误处理。

参数

参数类型 / 允许值默认值描述
categorystr"llm"标识该对象为 LLM 的类别标志。
semaphoreintConfig.get_llm_semaphore()并行 LLM 调用的并发限制。
timeoutfloatConfig.get_llm_timeout()最大执行时间(秒)。
llm_paramsdict{}额外的供应商特定 LLM 参数。
is_send_thinkboolConfig.get_message_is_send_think()是否将思考消息发送到前端。
friendly_error_textOptional[str]"Sorry, I seem to have encountered a problem. Please try again."发生异常时显示的用户友好错误消息。
is_multimodal_supportedboolFalse是否支持多模态输入。
is_convert_url_to_base64boolFalse是否将图片/视频 URL 转换为 Base64 格式。
max_image_pixelsint10000000每张图片允许的最大像素数。
max_video_sizeint12582912(12 MB)视频文件的最大大小(字节)。
max_file_size_bytesint2097152(2 MB)非媒体文件用于 Base64 嵌入的最大大小。
base64_image_prefixstr"data:image"用于检测 Base64 编码图片数据 URI 的前缀。
base64_video_prefixstr"data:video"用于检测 Base64 编码视频数据 URI 的前缀。
is_disable_system_promptboolFalse是否在 LLM 调用中省略系统提示词。

方法

方法协程 (async)返回值用途(简述)
_get_messages(oxy_request)list预处理消息以支持多模态输入;如已启用则将 URL 转换为 Base64。
_execute(oxy_request)OxyResponse抽象方法 -- 必须由子类实现。
_post_send_message(oxy_response)None提取思考过程消息并转发到前端。
_after_execute(oxy_response)OxyResponse汇总 Token 用量并序列化为字典。
_build_payload(oxy_request, payload)dict将全局 LLM 配置、实例参数和请求参数合并到 payload 中。
_build_token_usage(usage_data, messages, output)TokenUsage构建 Token 用量,支持回退到估算值。

继承

请参阅 Oxy 类了解继承的参数和方法。

用法

BaseLLM 类必须被继承使用。