erp-backend/config/ai.php
2026-04-01 17:07:04 +08:00

216 lines
8.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
return [
/*
|--------------------------------------------------------------------------
| AI Service Configuration
|--------------------------------------------------------------------------
|
| 配置AI服务提供商和参数
|
*/
'default' => env('AI_SERVICE', 'openai'),
'services' => [
'openai' => [
'api_key' => env('OPENAI_API_KEY', ''),
'api_url' => env('OPENAI_API_URL', 'https://api.openai.com/v1/chat/completions'),
'model' => env('OPENAI_MODEL', 'gpt-3.5-turbo'),
'max_tokens' => env('OPENAI_MAX_TOKENS', 2000),
'temperature' => env('OPENAI_TEMPERATURE', 0.7),
'timeout' => env('OPENAI_TIMEOUT', 30),
],
'azure_openai' => [
'api_key' => env('AZURE_OPENAI_API_KEY', ''),
'api_url' => env('AZURE_OPENAI_API_URL', ''),
'deployment_name' => env('AZURE_OPENAI_DEPLOYMENT_NAME', ''),
'api_version' => env('AZURE_OPENAI_API_VERSION', '2023-05-15'),
'max_tokens' => env('AZURE_OPENAI_MAX_TOKENS', 2000),
'temperature' => env('AZURE_OPENAI_TEMPERATURE', 0.7),
'timeout' => env('AZURE_OPENAI_TIMEOUT', 30),
],
'anthropic' => [
'api_key' => env('ANTHROPIC_API_KEY', ''),
'api_url' => env('ANTHROPIC_API_URL', 'https://api.anthropic.com/v1/messages'),
'model' => env('ANTHROPIC_MODEL', 'claude-3-haiku-20240307'),
'max_tokens' => env('ANTHROPIC_MAX_TOKENS', 2000),
'temperature' => env('ANTHROPIC_TEMPERATURE', 0.7),
'timeout' => env('ANTHROPIC_TIMEOUT', 30),
],
'local' => [
'api_url' => env('LOCAL_AI_API_URL', 'http://localhost:8080/v1/chat/completions'),
'model' => env('LOCAL_AI_MODEL', 'local-model'),
'max_tokens' => env('LOCAL_AI_MAX_TOKENS', 2000),
'temperature' => env('LOCAL_AI_TEMPERATURE', 0.7),
'timeout' => env('LOCAL_AI_TIMEOUT', 30),
],
'aliyun_qwen' => [
'api_key' => env('ALIYUN_QWEN_API_KEY', ''),
'api_url' => env('ALIYUN_QWEN_API_URL', 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions'),
'model' => env('ALIYUN_QWEN_MODEL', 'qwen-max'),
'max_tokens' => env('ALIYUN_QWEN_MAX_TOKENS', 2000),
'temperature' => env('ALIYUN_QWEN_TEMPERATURE', 0.7),
'timeout' => env('ALIYUN_QWEN_TIMEOUT', 30),
],
],
/*
|--------------------------------------------------------------------------
| AI Assistant Settings
|--------------------------------------------------------------------------
|
| AI助手功能配置
|
*/
'assistant' => [
// 系统提示词模板
'system_prompt' => env('AI_SYSTEM_PROMPT', '你是一个专业的ERP系统AI助手专门帮助用户处理企业资源管理相关的问题。'),
// 对话设置
'max_conversation_messages' => env('AI_MAX_CONVERSATION_MESSAGES', 50),
'max_message_length' => env('AI_MAX_MESSAGE_LENGTH', 2000),
'max_history_messages' => env('AI_MAX_HISTORY_MESSAGES', 10),
// 功能开关
'enable_chat' => env('AI_ENABLE_CHAT', true),
'enable_data_analysis' => env('AI_ENABLE_DATA_ANALYSIS', true),
'enable_report_generation' => env('AI_ENABLE_REPORT_GENERATION', true),
'enable_prediction' => env('AI_ENABLE_PREDICTION', true),
'enable_recommendation' => env('AI_ENABLE_RECOMMENDATION', true),
'enable_document_summary' => env('AI_ENABLE_DOCUMENT_SUMMARY', true),
// 使用限制
'daily_message_limit' => env('AI_DAILY_MESSAGE_LIMIT', 100),
'daily_token_limit' => env('AI_DAILY_TOKEN_LIMIT', 100000),
'conversation_timeout_hours' => env('AI_CONVERSATION_TIMEOUT_HOURS', 24),
],
/*
|--------------------------------------------------------------------------
| Module-specific Prompts
|--------------------------------------------------------------------------
|
| 各模块专用提示词
|
*/
'module_prompts' => [
'goods' => '你现在正在处理商品管理模块的问题。你可以帮助用户:查询商品信息、添加新商品、更新商品库存、设置商品价格、管理商品分类等。',
'orders' => '你现在正在处理订单管理模块的问题。你可以帮助用户:查看订单状态、处理新订单、发货操作、订单统计、退款处理等。',
'purchase' => '你现在正在处理采购管理模块的问题。你可以帮助用户:创建采购单、供应商管理、采购审批流程、收货入库、采购统计等。',
'inventory' => '你现在正在处理库存管理模块的问题。你可以帮助用户:库存查询、库存预警、盘点管理、出入库记录、库存调拨等。',
'finance' => '你现在正在处理财务管理模块的问题。你可以帮助用户:收支记录、财务报表、发票管理、对账处理、预算控制等。',
'system' => '你现在正在处理系统管理模块的问题。你可以帮助用户:用户管理、权限设置、系统配置、日志查看、数据备份等。',
],
/*
|--------------------------------------------------------------------------
| Task-specific Settings
|--------------------------------------------------------------------------
|
| 特定任务配置
|
*/
'tasks' => [
'data_analysis' => [
'enabled' => true,
'max_data_points' => 1000,
'supported_types' => ['sales', 'inventory', 'finance', 'customer'],
],
'report_generation' => [
'enabled' => true,
'max_report_length' => 5000,
'supported_formats' => ['text', 'markdown', 'html'],
],
'prediction' => [
'enabled' => true,
'max_periods' => 12,
'confidence_threshold' => 0.7,
],
'recommendation' => [
'enabled' => true,
'max_recommendations' => 10,
'supported_areas' => ['inventory', 'sales', 'purchase', 'finance'],
],
'document_summary' => [
'enabled' => true,
'max_document_length' => 10000,
'min_summary_length' => 50,
'max_summary_length' => 1000,
],
],
/*
|--------------------------------------------------------------------------
| Security Settings
|--------------------------------------------------------------------------
|
| 安全配置
|
*/
'security' => [
'filter_sensitive_data' => env('AI_FILTER_SENSITIVE_DATA', true),
'sensitive_keywords' => [
'password', 'token', 'secret', 'key', 'credit_card', 'ssn',
'身份证', '密码', '密钥', '令牌', '银行卡',
],
'content_moderation' => env('AI_CONTENT_MODERATION', true),
'rate_limit' => env('AI_RATE_LIMIT', 60), // 每分钟请求数
],
/*
|--------------------------------------------------------------------------
| Cache Settings
|--------------------------------------------------------------------------
|
| 缓存配置
|
*/
'cache' => [
'enabled' => env('AI_CACHE_ENABLED', true),
'ttl' => env('AI_CACHE_TTL', 3600), // 缓存时间(秒)
'prefix' => env('AI_CACHE_PREFIX', 'ai_'),
],
/*
|--------------------------------------------------------------------------
| Logging Settings
|--------------------------------------------------------------------------
|
| 日志配置
|
*/
'logging' => [
'enabled' => env('AI_LOGGING_ENABLED', true),
'level' => env('AI_LOGGING_LEVEL', 'info'),
'log_requests' => env('AI_LOG_REQUESTS', true),
'log_responses' => env('AI_LOG_RESPONSES', false), // 注意:记录响应可能包含敏感信息
'log_errors' => env('AI_LOG_ERRORS', true),
],
/*
|--------------------------------------------------------------------------
| Fallback Settings
|--------------------------------------------------------------------------
|
| 降级配置
|
*/
'fallback' => [
'enabled' => env('AI_FALLBACK_ENABLED', true),
'service_order' => ['openai', 'azure_openai', 'anthropic', 'aliyun_qwen', 'local'],
'max_retries' => env('AI_MAX_RETRIES', 3),
'retry_delay' => env('AI_RETRY_DELAY', 1000), // 毫秒
],
];