思考预算功能实现


文档摘要

思考预算功能实现 概述 本文档描述了为LEANN实现的思考预算功能,该功能允许用户控制像GPT-Oss:20b这样的推理模型的计算开销。 功能描述 思考预算功能为推理模型提供了三种不同级别的计算开销: :快速响应,基础推理(适用于简单查询的默认设置) :速度与推理深度的平衡 :最大推理开销,最适合复杂分析问题 实现细节 命令行界面 在CLI和RAG示例中均添加了 参数: LLM后端支持 Ollama后端( ) API格式:使用Ollama的 parameter with and fields. OpenAI Backend ( API格式:使用OpenAI的 parameter for o-series models.

思考预算功能实现

概述

本文档描述了为LEANN实现的思考预算功能,该功能允许用户控制像GPT-Oss:20b这样的推理模型的计算开销。

功能描述

思考预算功能为推理模型提供了三种不同级别的计算开销:

  • low:快速响应,基础推理(适用于简单查询的默认设置)
  • medium:速度与推理深度的平衡
  • high:最大推理开销,最适合复杂分析问题

实现细节

1. 命令行界面

在CLI和RAG示例中均添加了--thinking-budget参数:

# LEANN CLI leann ask my-index --llm ollama --model gpt-oss:20b --thinking-budget high # RAG Examples python apps/email_rag.py --llm ollama --llm-model gpt-oss:20b --thinking-budget high python apps/document_rag.py --llm openai --llm-model o3 --thinking-budget medium

2. LLM后端支持

Ollama后端(packages/leann-core/src/leann/chat.py

def ask(self, prompt: str, **kwargs) -> str: # Handle thinking budget for reasoning models options = kwargs.copy() thinking_budget = kwargs.get("thinking_budget") if thinking_budget: options.pop("thinking_budget", None) if thinking_budget in ["low", "medium", "high"]: options["reasoning"] = {"effort": thinking_budget, "exclude": False}

API格式:使用Ollama的reasoning parameter with effort and exclude fields.

OpenAI Backend (packages/leann-core/src/leann/chat.py

def ask(self, prompt: str, **kwargs) -> str: # Handle thinking budget for reasoning models thinking_budget = kwargs.get("thinking_budget") if thinking_budget and thinking_budget in ["low", "medium", "high"]: # Check if this is an o-series model o_series_models = ["o3", "o3-mini", "o4-mini", "o1", "o3-pro", "o3-deep-research"] if any(model in self.model for model in o_series_models): params["reasoning_effort"] = thinking_budget

API格式:使用OpenAI的reasoning_effort parameter for o-series models.

3. Parameter Propagation

The thinking budget parameter is properly propagated through the LEANN architecture:

  1. CLI (packages/leann-core/src/leann/cli.py:捕获--thinking-budget参数
  2. 基础RAGapps/base_rag_example.py): Adds parameter to argument parser
  3. LeannChat (packages/leann-core/src/leann/api.py): Passes llm_kwargs to LLM
  4. LLM Interface: Handles the parameter in backend-specific implementations

Files Modified

Core Implementation

  • packages/leann-core/src/leann/chat.py: Added thinking budget support to OllamaChat and OpenAIChat
  • packages/leann-core/src/leann/cli.py:添加了--thinking-budget参数
  • apps/base_rag_example.py: Added thinking budget parameter to RAG examples

Documentation

  • README.md: Added thinking budget parameter to usage examples
  • docs/configuration-guide.md: Added detailed documentation and usage guidelines

Examples

  • examples/thinking_budget_demo.py:包含使用示例的完整演示脚本

使用示例

基本用法

# High reasoning effort for complex questions leann ask my-index --llm ollama --model gpt-oss:20b --thinking-budget high # Medium reasoning for balanced performance leann ask my-index --llm openai --model gpt-4o --thinking-budget medium # Low reasoning for fast responses leann ask my-index --llm ollama --model gpt-oss:20b --thinking-budget low

RAG示例

# Email RAG with high reasoning python apps/email_rag.py --llm ollama --llm-model gpt-oss:20b --thinking-budget high # Document RAG with medium reasoning python apps/document_rag.py --llm openai --llm-model gpt-4o --thinking-budget medium

支持的模型

Ollama模型

  • GPT-Oss:20b:具备推理能力的主要目标模型
  • 其他推理模型:任何支持reasoning parameter

OpenAI Models

  • o3, o3-mini, o4-mini, o1: o-series reasoning models with reasoning_effort参数的Ollama模型
  • GPT-OSS模型:支持推理能力的模型

测试

该实现包含了全面的测试:

  • 参数处理验证
  • 后端特定API格式验证
  • CLI参数解析测试
  • 与现有LEANN架构的集成测试

免责声明
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


发布者: 作者: 转发
评论区 (0)
U