Skip to content

LLM API

LLM API模块提供与大语言模型交互的功能,让插件能够使用系统配置的LLM模型进行内容生成。

导入方式

python
from src.plugin_system.apis import llm_api
# 或者
from src.plugin_system import llm_api

主要功能

1. 查询可用模型

python
def get_available_models() -> Dict[str, TaskConfig]:

获取所有可用的模型配置。

Return:

  • Dict[str, TaskConfig]:模型配置字典,key为模型名称,value为模型配置对象。

2. 使用模型生成内容

python
async def generate_with_model(
    prompt: str,
    model_config: TaskConfig,
    request_type: str = "plugin.generate",
    temperature: Optional[float] = None,
    max_tokens: Optional[int] = None,
) -> Tuple[bool, str, str, str]:

使用指定模型生成内容。

Args:

  • prompt:提示词。
  • model_config:模型配置对象(从 get_available_models 获取)。
  • request_type:请求类型标识,默认为 "plugin.generate"
  • temperature:生成内容的温度设置,影响输出的随机性。
  • max_tokens:生成内容的最大token数。

Return:

  • Tuple[bool, str, str, str]:返回一个元组,包含(是否成功, 生成的内容, 推理过程, 模型名称)。

3. 有Tool情况下使用模型生成内容

python
async def generate_with_model_with_tools(
    prompt: str,
    model_config: TaskConfig,
    tool_options: List[Dict[str, Any]] | None = None,
    request_type: str = "plugin.generate",
    temperature: Optional[float] = None,
    max_tokens: Optional[int] = None,
) -> Tuple[bool, str, str, str, List[ToolCall] | None]:

使用指定模型生成内容,并支持工具调用。

Args:

  • prompt:提示词。
  • model_config:模型配置对象(从 get_available_models 获取)。
  • tool_options:工具选项列表,包含可用工具的配置,字典为每一个工具的定义,参见tool-components.md,可用tool_api.get_llm_available_tool_definitions()获取并选择。
  • request_type:请求类型标识,默认为 "plugin.generate"
  • temperature:生成内容的温度设置,影响输出的随机性。
  • max_tokens:生成内容的最大token数。

Released under the GPL-3.0 License.