跳到主要内容

智能聊天系统 - 新添参数选项

· 阅读需 6 分钟
Knox Anderson
OpenRouter 核心团队

本次更新实现严格遵循OpenRouter的API规范,为用户提供了无需了解底层参数技术细节即可微调模型行为的友好界面。

参数管理

  • 状态管理: 处理所有OpenRouter API参数并进行验证
  • 持久化: 自动从localStorage保存/加载参数
  • 验证: 强制参数约束(最小值/最大值、类型)
  • API集成: 提供getApiParameters()方法格式化API请求参数

增强设置对话框

  • 可折叠界面: 参数部分支持展开/折叠功能
  • 基础参数: 温度(Temperature)、最大Token数(Max Tokens)、Top P(最常用参数)
  • 高级参数: 频率惩罚(Frequency Penalty)、存在惩罚(Presence Penalty)、重复惩罚(Repetition Penalty)、Min P、Top A、随机种子(Seed)、对数概率(Log Probabilities)
  • 交互控件:
    • 滑块用于连续值(温度、惩罚值等)
    • 数字输入框用于离散值(max_tokens、top_k、seed)
    • 开关用于布尔值(logprobs)
  • 视觉提示:
    • 参数修改指示器(蓝点)
    • 实时值显示
    • 带有详细说明的工具提示

支持的API参数

参数类型范围描述
temperature浮点数0.0-2.0控制响应的随机性
max_tokens整数1-100000生成的最大Token数
top_p浮点数0.0-1.0核心采样参数
top_k整数0-1000限制选择前千个Token
frequency_penalty浮点数-2.0-2.0基于频率减少重复
presence_penalty浮点数-2.0-2.0减少现有Token的重复
repetition_penalty浮点数0.0-2.0替代重复控制
min_p浮点数0.0-1.0最小概率阈值
top_a浮点数0.0-1.0动态过滤参数
seed整数0-2147483647确定性随机种子
logprobs布尔值-返回对数概率
top_logprobs整数0-20返回前N个对数概率

国际化支持

  • 英文翻译: 完整的参数描述和标签
  • 中文翻译: 为中国用户提供完整本地化
  • 上下文帮助: 每个参数的工具提示说明

集成点

  • 聊天组件: 参数传递给sendChatMessage函数
  • API服务: 更新以合并用户参数与默认值
  • 设置状态: 无缝集成现有设置管理

🎨 用户体验特性

  1. 渐进式披露: 先显示基础参数,高级参数在可折叠部分
  2. 视觉反馈: 实时值更新,修改指示器
  3. 重置功能: 一键重置为默认值
  4. 响应式设计: 适配所有屏幕尺寸
  5. 无障碍设计: 适当的标签、ARIA属性、键盘导航

🚀 使用方式

用户现在可以:

  1. 打开聊天设置 → 点击设置图标
  2. 展开参数 → 点击“参数”部分
  3. 调整值 → 使用滑块、输入框和开关
  4. 高级选项 → 展开“高级参数”查看更多控件
  5. 重置 → 使用“重置为默认值”按钮
  6. 自动保存 → 所有更改自动保存到localStorage

增强的最大Token数选择

  • 下拉菜单: 替换数字输入框为Select下拉菜单
  • 预定义选项:
    • 4,096(新默认值)
    • 16,384
    • 32,768
    • 65,536
    • 200,000
    • 1,000,000
  • 更好的用户体验: 清除输入时不再强制最小值
  • 格式化显示: 数字显示带千位分隔符,便于阅读

全局重置按钮

  • 显著位置: 移至基础参数部分,采用轮廓样式
  • 清晰标签: “重置所有参数为默认值”表明影响所有参数
  • 一键重置: 同时重置基础和高级参数
  • 视觉反馈: 轮廓按钮样式使其更易察觉

更新的默认值

  • 新默认值: 将max_tokens默认值从2,000改为4,096
  • API一致性: 更新前端和后端默认值
  • 更广范围: 将最大值增至1,000,000Token以支持大上下文模型

🚀 优势

  1. 更好的用户体验:

    • 不再有最大Token数输入验证问题
    • 清晰的预定义选项满足常见用例
    • 一键重置所有参数
  2. 提升可用性:

    • 下拉菜单防止无效值
    • 格式化数字更易阅读
    • 全局重置更易发现
  3. 技术改进:

    • 前后端默认值一致
    • 更好的参数验证
    • 更清晰的代码结构