WrenAI部署,解决发送消息报错:failed to create asking task
项目地址:WrenAI
- 使用本地MySQL和Ollama,模型使用 qwen3:0.6b 和 nomic-embed-text:latest
- 服务在docker容器中
注意:
- 默认情况下,MySQL 的 root 用户只允许从 localhost (也就是宿主机本机) 登录。
- Ollama也要和MySQL一样允许所有IP访问。
查看容器服务日志的命令:
docker ps
docker logs -f <你的WrenAI容器名称或者ID>
.env 文件
在项目根目录(与 docker-compose.yaml 文件位于同一级),找到一个名为 .env 的文件。如果不存在就新建一个。在该 .env 文件中,添加下面这一行来定义你的 MySQL 数据库连接信息:
WRENAI_DATABASE_URL=mysql+pymysql://root:123456@host.docker.internal:3306/wrenai
请注意: 确保将末尾的 wrenai 替换为你实际的数据库名称。
config.yaml 文件
type: llm
provider: litellm_llm
models:
  - api_base: http://host.docker.internal:11434
    model: ollama_chat/qwen3:0.6b
    alias: default
    timeout: 600
    kwargs:
      n: 1
      temperature: 0
---
type: embedder
provider: litellm_embedder
models:
  - model: openai/nomic-embed-text:latest
    alias: default
    api_base: http://host.docker.internal:11434/v1
    timeout: 600
---
type: engine
provider: wren_ui
endpoint: http://wren-ui:3000
---
type: engine
provider: wren_ibis
endpoint: http://ibis-server:8000
---
type: document_store
provider: qdrant
location: http://qdrant:6333
embedding_model_dim: 768
timeout: 120
recreate_index: true
---
type: pipeline
pipes:
  - name: db_schema_indexing
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: historical_question_indexing
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: table_description_indexing
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: db_schema_retrieval
    llm: litellm_llm.default
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: historical_question_retrieval
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: sql_generation
    llm: litellm_llm.default
    engine: wren_ui
    document_store: qdrant
  - name: sql_correction
    llm: litellm_llm.default
    engine: wren_ui
    document_store: qdrant
  - name: followup_sql_generation
    llm: litellm_llm.default
    engine: wren_ui
    document_store: qdrant
  - name: sql_answer
    llm: litellm_llm.default
  - name: semantics_description
    llm: litellm_llm.default
  - name: relationship_recommendation
    llm: litellm_llm.default
    engine: wren_ui
  - name: question_recommendation
    llm: litellm_llm.default
  - name: question_recommendation_db_schema_retrieval
    llm: litellm_llm.default
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: question_recommendation_sql_generation
    llm: litellm_llm.default
    engine: wren_ui
    document_store: qdrant
  - name: chart_generation
    llm: litellm_llm.default
  - name: chart_adjustment
    llm: litellm_llm.default
  - name: intent_classification
    llm: litellm_llm.default
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: misleading_assistance
    llm: litellm_llm.default
  - name: data_assistance
    llm: litellm_llm.default
  - name: sql_pairs_indexing
    document_store: qdrant
    embedder: litellm_embedder.default
  - name: sql_pairs_retrieval
    document_store: qdrant
    embedder: litellm_embedder.default
    llm: litellm_llm.default
  - name: preprocess_sql_data
    llm: litellm_llm.default
  - name: sql_executor
    engine: wren_ui
  - name: user_guide_assistance
    llm: litellm_llm.default
  - name: sql_question_generation
    llm: litellm_llm.default
  - name: sql_generation_reasoning
    llm: litellm_llm.default
  - name: followup_sql_generation_reasoning
    llm: litellm_llm.default
  - name: sql_regeneration
    llm: litellm_llm.default
    engine: wren_ui
  - name: instructions_indexing
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: instructions_retrieval
    embedder: litellm_embedder.default
    document_store: qdrant
  - name: sql_functions_retrieval
    engine: wren_ibis
    document_store: qdrant
  - name: project_meta_indexing
    document_store: qdrant
  - name: sql_tables_extraction
    llm: litellm_llm.default
---
settings:
  engine_timeout: 30
  column_indexing_batch_size: 50
  table_retrieval_size: 10
  table_column_retrieval_size: 100
  allow_intent_classification: true
  allow_sql_generation_reasoning: true
  allow_sql_functions_retrieval: true
  enable_column_pruning: false
  max_sql_correction_retries: 3
  query_cache_maxsize: 1000
  query_cache_ttl: 3600
  langfuse_host: https://cloud.langfuse.com
  langfuse_enable: true
  logging_level: DEBUG
  development: true
  historical_question_retrieval_similarity_threshold: 0.9
  sql_pairs_similarity_threshold: 0.7
  sql_pairs_retrieval_max_size: 10
  instructions_similarity_threshold: 0.7
  instructions_top_k: 10
重启服务
现在,一切都已配置妥当。回到你的终端,在 docker-compose.yaml 文件所在的目录中,执行以下命令来彻底重启所有服务:
docker-compose down
docker-compose up -d
总结:
- config.yaml:用来配置 AI 模型、向量数据库等应用逻辑。
- .env:用来存放数据库密码等敏感信息和环境变量。
- docker-compose.yaml:用来定义和编排所有服务,并指定从哪里加载配置。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号