HumansXドキュメントセンター 公式サイトへ ↗

意味理解 LLM -- 設定ガイド

概要

LLM モジュールは階層型の設定管理システムを使用しており、YAML 設定ファイル、環境変数ファイル (.env)、システム環境変数に対応しています。優先順位による上書きの仕組みを採用しており、柔軟なデプロイと設定管理が可能です。

⚙️ 設定ファイルの階層

設定の優先順位(高い順):

  1. システム環境変数 - 最も優先度が高い
  2. .env ファイル - ローカル開発用の上書き
  3. YAML 設定ファイル - 基本設定
  4. コードのデフォルト値 - 最も優先度が低い

📝 メイン設定ファイル

設定ファイルの場所 場所

  • メイン設定:config/llm_config.yaml
  • 環境変数:.env(プロジェクトのルートディレクトリ)

完全な設定例

# LLM独立应用配置文件

# 服务器配置
server:
host: "0.0.0.0"
port: 8002
debug: false

# LLM 大语言模型配置
llm:
# 火山引擎账号配置
volcengine:
api_key: ""  # 将从环境变量 VOLCENGINE_LLM_API_KEY 读取
api_url: "https://ark.cn-beijing.volces.com"

# 模型配置
model:
name: "doubao-seed-1-6-250615"  

# 推理参数
parameters:
# 基础采样参数
temperature: 0.7    # 温度参数,控制随机性 [0.0-2.0]
top_p: 0.95         # Top-p采样参数 [0.0-1.0]
max_tokens: 4096    # 最大输出token数 (回答长度,最大32k)
stream: true        # 是否使用流式响应

# doubao-seed-1.6 思考模型专用参数
thinking:
type: "disabled"  # 思考模式: "enabled", "disabled", "auto"

# 高级参数(可选)
frequency_penalty: 0.0    # 频率惩罚 [-2.0-2.0]
presence_penalty: 0.0     # 存在惩罚 [-2.0-2.0]

# 客户端配置
timeout: 60         # 客户端请求超时时间(秒)
system_prompt: |
你是一个人工智能助手,帮助用户来完成任务

# Function Calling 配置
function_calling:
enabled: true
tools:
calculator:
enabled: true
description: "基本数学计算工具,支持加减乘除等运算"
music_player:
enabled: true
description: "音乐播放器工具,支持音乐列表、播放、停止、音量控制"
gimbal:
enabled: true
description: "云台控制工具,支持舵机角度控制、相对移动、位置重置等功能"
arm_control:
enabled: true
description: "机械臂控制工具,支持物体抓取、放置、移动等操作"
vlm:
enabled: true
description: "视觉语言模型工具,支持图像分析、物体检测、视觉问答和文字识别"

# 云台控制配置
gimbal:
enabled: true
serial_port: "/dev/ttyS1"
baudrate: 115200
pan_pin: 3
tilt_pin: 4
init_pan_angle: 135.0
init_tilt_angle: 135.0
angle_range: [0, 270]

# 机械臂控制配置
arm_control:
enabled: true
serial_port: "/dev/ttyS1"
baudrate: 115200

# MCP 集成配置
mcp:
enabled: true
servers:
amap_maps:
enabled: false  # 默认禁用,需要时可启用
command: "npx"
args: ["-y", "@modelcontextprotocol/server-amap-maps"]

# 日志配置
logging:
level: "INFO"
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

# 对话历史配置
conversation:
max_history: 20        # 最大保存的对话轮数
save_to_file: false    # 是否保存对话到文件

# 视觉语言模型(VLM)配置
vlm:
enabled: true         # 是否启用VLM功能
api_key: ""            # SiliconFlow API密钥,将从环境变量 SILICONFLOW_API_KEY 读取
api_url: "https://api.siliconflow.cn/v1/chat/completions"
model_name: "Qwen/Qwen2-VL-72B-Instruct"
timeout: 120           # API请求超时时间(秒)

🔑 環境変数の設定

.env ファイルの例

# LLM独立应用环境变量配置示例
# 复制此文件为 .env 并填入真实的API密钥

# 火山引擎LLM API密钥(必需)
# 获取地址: https://console.volcengine.com/ark
VOLCENGINE_LLM_API_KEY=your_volcengine_api_key_here

# SiliconFlow VLM API密钥(可选,启用VLM功能时需要)
# 获取地址: https://cloud.siliconflow.cn/
SILICONFLOW_API_KEY="your_siliconflow_api_key_here"

# 服务器配置(可选,会覆盖YAML配置)
# LLM_SERVER_HOST=0.0.0.0
# LLM_SERVER_PORT=8002
# LLM_SERVER_DEBUG=false

# 日志级别(可选)
# LLM_LOG_LEVEL=INFO

# 模型配置(可选,会覆盖YAML配置)
# LLM_MODEL_NAME=doubao-seed-1-6-250615
# LLM_TEMPERATURE=0.7
# LLM_MAX_TOKENS=4096

# 对话配置(可选)
# LLM_MAX_HISTORY=20
# LLM_SAVE_HISTORY=false

📋 設定項目の詳細説明

1. サーバー設定 (server)

設定項目 型 デフォルト値 説明 環境変数
host string “0.0.0.0” サービスの待ち受けアドレス LLM_SERVER_HOST
port integer 8002 サービスのポート LLM_SERVER_PORT
debug boolean false デバッグモード LLM_SERVER_DEBUG

2. LLM 設定 (llm)

2.1 火山引擎の設定 (volcengine)

設定項目 型 デフォルト値 説明 環境変数
api_key string ”” API キー VOLCENGINE_LLM_API_KEY
api_url string “https://ark.cn-beijing.volces.com ” API エンドポイントの URL -

2.2 モデル設定 (model)

設定項目 型 デフォルト値 説明 環境変数
name string “doubao-seed-1-6-250615” モデル名 LLM_MODEL_NAME

2.3 パラメータ設定 (parameters)

設定項目 型 デフォルト値 説明 環境変数
temperature float 0.7 温度パラメータ(0.0-2.0) LLM_TEMPERATURE
top_p float 0.95 核サンプリング(nucleus sampling)パラメータ(0.0-1.0) LLM_TOP_P
max_tokens integer 4096 最大トークン数 LLM_MAX_TOKENS
thinking.type string “disabled” 思考モード LLM_THINKING_TYPE

3. ハードウェア設定

3.1 雲台の設定 (gimbal)

設定項目 型 デフォルト値 説明
enabled boolean true 雲台制御を有効にするかどうか
serial_port string “/dev/ttyS1” シリアルデバイスのパス
baudrate integer 115200 ボーレート
pan_pin integer 3 水平方向サーボのピン
tilt_pin integer 4 垂直方向サーボのピン
angle_range array [0, 270] 角度範囲

3.2 ロボットアームの設定 (arm_control)

設定項目 型 デフォルト値 説明
enabled boolean true ロボットアーム制御を有効にするかどうか
serial_port string “/dev/ttyS1” シリアルデバイスのパス
baudrate integer 115200 ボーレート

4. 視覚言語モデルの設定 (vlm)

設定項目 型 デフォルト値 説明 環境変数
enabled boolean true VLM 機能を有効にするかどうか -
api_key string ”” SiliconFlow の API キー SILICONFLOW_API_KEY
api_url string “https://api.siliconflow.cn/v1/chat/completions ” API エンドポイント -
model_name string “Qwen/Qwen2-VL-72B-Instruct” モデル名 -
timeout integer 120 リクエストのタイムアウト時間(秒) -
max_image_size integer 10485760 最大画像サイズ(バイト) -

✅ 設定の検証

起動時の検証

システムの起動時に、次の項目が自動的に検証されます:

  1. API キーの有効性: 必要な API キーを確認します
  2. ポートの利用可否: ポートが使用中でないか確認します
  3. ハードウェアデバイス: シリアルデバイスにアクセスできるか確認します
  4. パラメータの範囲: 数値パラメータが有効範囲内にあるか確認します

設定のホットリロード

ホットリロードに対応している設定項目:

  • ログレベル
  • ツールの有効/無効の状態
  • 一部のモデルパラメータ

リロード方法:

# 发送SIGHUP信号
kill -HUP $(pgrep -f "python main.py")

🌐 環境別の設定

開発環境

server:
  debug: true
logging:
  level: "DEBUG"

本番環境

server:
  debug: false
logging:
  level: "WARNING"

ハードウェアへのデプロイ環境

gimbal:
  enabled: true
arm_control:
  enabled: true

🔧 トラブルシューティング

よくある設定の問題

  1. API キーのエラー
  • 環境変数の設定を確認します
  • キーが有効か確認します
  1. ポートが使用中
  • ポート番号を変更します
  • 競合しているプロセスを確認します:lsof -i :8002
  1. ハードウェアデバイスにアクセスできない
  • デバイスの権限を確認します:ls -l /dev/ttyS*
  • ユーザーを dialout グループに追加します:sudo usermod -a -G dialout $USER