LLM による意味理解:設定ガイド
概要
LLM モジュールは階層的な設定管理システムを採用しており、YAML 設定ファイル、環境変数ファイル(.env)、システム環境変数をサポートします。設定は優先度に基づく上書きの仕組みを用いており、柔軟なデプロイと設定管理を実現します。
⚙️ 設定ファイルの階層
設定の優先度(高い順):
- システム環境変数:最も優先度が高い
- .env ファイル:ローカル開発用の上書き
- YAML 設定ファイル:基本設定
- コードのデフォルト値:最も優先度が低い
メイン設定ファイル
設定ファイルの場所 場所
- メイン設定:
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 Volcano Engine の設定(volcengine)
| 設定項目 | 型 | デフォルト値 | 説明 | 環境変数 |
|---|---|---|---|---|
| api_key | string | ”” | API キー | volcenine_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 | temperature パラメータ(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 | 最大画像サイズ(バイト) | - |
✅ 設定の検証
起動時の検証
システムは起動時に以下を自動的に検証します:
- API キーの有効性:必要な API キーを確認します
- ポートの可用性:ポートが使用中でないかを確認します
- ハードウェアデバイス:シリアルデバイスにアクセスできるかを確認します
- パラメータの範囲:数値パラメータが有効範囲内にあるかを確認します
設定のホットリロード
ホットリロードに対応している設定項目:
- ログレベル
- ツールの有効/無効状態
- 一部のモデルパラメータ
リロード方法:
# 发送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
トラブルシューティング
よくある設定の問題
- API キーのエラー
- 環境変数の設定を確認します
- キーが有効であることを確認します
- ポートが使用中
- ポート番号を変更します
- 競合しているプロセスを確認します:
lsof -i :8002
- ハードウェアデバイスにアクセスできない
- デバイスの権限を確認します:
ls -l /dev/ttyS* - ユーザーを dialout グループに追加します:
sudo usermod -a -G dialout $USER
ドキュメント