主要改动: fix(docker/dify-deploy): 修复脚本核心功能 - heredoc 单引号 bug: 'ENVEOF' 改为 ENVEOF,变量正确展开 - 端口默认值 8083/8084/8085 对齐 .env.prod 生产配置 - 加 dc_cmd() 兼容 docker-compose v1/v2 plugin - openssl rand 生成强随机密码与 SECRET_KEY(42 字符) - install 跳过已存在 .env,保护用户配置(管理员密码/SECRET_KEY) - read -p < /dev/tty 兼容非 tty 环境(CI/CD) - show-config 改用 DIFY_NGINX_PORT(nginx 入口)而非 APP_WEB_PORT docs(mvp-design): 修正 §3.2 workflow inputs 描述 - 实际只有 query,删除错误的 user_id input 声明 - 节点序列图同步更新 feat(aiChatService): 新增 Dify 客户端与适配器 - service/dify_client.go: Dify Workflow 调用 + SSE 解析 - service/dify_adapter.go: 与现有 chat_service 桥接 - provider/ai_chat_provider.go: Dubbo 入口简化 - main.go: 装配 ConversationRepository + DifyClient feat(migrations): 新增 AI 搭子会话表 ai_chat.sql - ai_conversations / ai_messages 表 + 索引 docs: 新增 Dify 集成设计文档 - 2026-06-29-ai-chat-dify-mvp-design.md (MVP 实施级) - 2026-06-29-ai-chat-dify-integration-v2-design.md (V2 演进路线图) - docs/dify/角角.yml (Workflow DSL 导出) config: 更新 env 模板与 docker 配置 - backend/.env.example: DIFY_* 环境变量声明 - docker/.env.prod: DIFY_API_BASE 对齐 8083 - docker/build.sh: 微调 - CLAUDE.md: 项目规范补充 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
228 lines
5.4 KiB
YAML
228 lines
5.4 KiB
YAML
app:
|
|
description: ''
|
|
icon: 🤖
|
|
icon_background: '#FFEAD5'
|
|
icon_type: emoji
|
|
mode: workflow
|
|
name: 角角
|
|
use_icon_as_answer_icon: false
|
|
dependencies:
|
|
- current_identifier: null
|
|
type: marketplace
|
|
value:
|
|
marketplace_plugin_unique_identifier: langgenius/minimax:0.0.21@ccfbb9b4f38d35b1daa2483daaad5ed5402896d1119d68601a820a806910bf87
|
|
version: null
|
|
kind: app
|
|
version: 0.6.0
|
|
workflow:
|
|
conversation_variables: []
|
|
environment_variables: []
|
|
features:
|
|
file_upload:
|
|
allowed_file_extensions:
|
|
- .JPG
|
|
- .JPEG
|
|
- .PNG
|
|
- .GIF
|
|
- .WEBP
|
|
- .SVG
|
|
allowed_file_types:
|
|
- image
|
|
allowed_file_upload_methods:
|
|
- local_file
|
|
- remote_url
|
|
enabled: false
|
|
fileUploadConfig:
|
|
attachment_image_file_size_limit: 2
|
|
audio_file_size_limit: 50
|
|
batch_count_limit: 5
|
|
file_size_limit: 15
|
|
file_upload_limit: 20
|
|
image_file_batch_limit: 10
|
|
image_file_size_limit: 10
|
|
single_chunk_attachment_limit: 10
|
|
video_file_size_limit: 100
|
|
workflow_file_upload_limit: 10
|
|
image:
|
|
enabled: false
|
|
number_limits: 3
|
|
transfer_methods:
|
|
- local_file
|
|
- remote_url
|
|
number_limits: 3
|
|
opening_statement: ''
|
|
retriever_resource:
|
|
enabled: true
|
|
sensitive_word_avoidance:
|
|
enabled: false
|
|
speech_to_text:
|
|
enabled: false
|
|
suggested_questions: []
|
|
suggested_questions_after_answer:
|
|
enabled: false
|
|
text_to_speech:
|
|
enabled: false
|
|
language: ''
|
|
voice: ''
|
|
graph:
|
|
edges:
|
|
- data:
|
|
isInIteration: false
|
|
isInLoop: false
|
|
sourceType: start
|
|
targetType: knowledge-retrieval
|
|
id: 1782726878899-source-1782726916693-target
|
|
source: '1782726878899'
|
|
sourceHandle: source
|
|
target: '1782726916693'
|
|
targetHandle: target
|
|
type: custom
|
|
zIndex: 0
|
|
- data:
|
|
isInIteration: false
|
|
isInLoop: false
|
|
sourceType: knowledge-retrieval
|
|
targetType: llm
|
|
id: 1782726916693-source-1782726955948-target
|
|
source: '1782726916693'
|
|
sourceHandle: source
|
|
target: '1782726955948'
|
|
targetHandle: target
|
|
type: custom
|
|
zIndex: 0
|
|
- data:
|
|
isInIteration: false
|
|
isInLoop: false
|
|
sourceType: llm
|
|
targetType: end
|
|
id: 1782726955948-source-1782727496103-target
|
|
source: '1782726955948'
|
|
sourceHandle: source
|
|
target: '1782727496103'
|
|
targetHandle: target
|
|
type: custom
|
|
zIndex: 0
|
|
nodes:
|
|
- data:
|
|
selected: false
|
|
title: 用户输入
|
|
type: start
|
|
variables:
|
|
- default: ''
|
|
hint: ''
|
|
label: query
|
|
options: []
|
|
placeholder: ''
|
|
required: true
|
|
type: text-input
|
|
variable: query
|
|
height: 108
|
|
id: '1782726878899'
|
|
position:
|
|
x: 16
|
|
y: 277
|
|
positionAbsolute:
|
|
x: 16
|
|
y: 277
|
|
selected: false
|
|
sourcePosition: right
|
|
targetPosition: left
|
|
type: custom
|
|
width: 242
|
|
- data:
|
|
dataset_ids:
|
|
- NCv1DfzNsC8G/IjCISUkvry7LBfVIV8mXqRliZH+TUgfixw/U0t6Tz5wWsLdX/Vh
|
|
multiple_retrieval_config:
|
|
reranking_enable: false
|
|
reranking_mode: reranking_model
|
|
top_k: 4
|
|
query_attachment_selector: []
|
|
query_variable_selector:
|
|
- '1782726878899'
|
|
- query
|
|
retrieval_mode: multiple
|
|
selected: false
|
|
title: 知识检索
|
|
type: knowledge-retrieval
|
|
height: 89
|
|
id: '1782726916693'
|
|
position:
|
|
x: 230
|
|
y: 103.1999999999999
|
|
positionAbsolute:
|
|
x: 230
|
|
y: 103.1999999999999
|
|
selected: false
|
|
sourcePosition: right
|
|
targetPosition: left
|
|
type: custom
|
|
width: 242
|
|
- data:
|
|
context:
|
|
enabled: true
|
|
variable_selector:
|
|
- '1782726916693'
|
|
- result
|
|
model:
|
|
completion_params:
|
|
temperature: 0.7
|
|
mode: chat
|
|
name: minimax-m3
|
|
provider: langgenius/minimax/minimax
|
|
prompt_config:
|
|
jinja2_variables: []
|
|
prompt_template:
|
|
- edition_type: basic
|
|
id: b656505c-e726-47c4-b036-6e6025595a8c
|
|
role: system
|
|
text: 你是角角,专注于肖战的粉丝助手
|
|
- id: db882835-3ffe-4600-b95a-9eca51b93ce2
|
|
role: user
|
|
text: '{{#context#}}}{{#1782726878899.query#}}}'
|
|
selected: false
|
|
title: LLM
|
|
type: llm
|
|
vision:
|
|
enabled: false
|
|
height: 87
|
|
id: '1782726955948'
|
|
position:
|
|
x: 358
|
|
y: 510
|
|
positionAbsolute:
|
|
x: 358
|
|
y: 510
|
|
selected: false
|
|
sourcePosition: right
|
|
targetPosition: left
|
|
type: custom
|
|
width: 242
|
|
- data:
|
|
outputs:
|
|
- value_selector:
|
|
- '1782726955948'
|
|
- text
|
|
value_type: string
|
|
variable: text
|
|
selected: false
|
|
title: 输出
|
|
type: end
|
|
height: 88
|
|
id: '1782727496103'
|
|
position:
|
|
x: 612
|
|
y: 235
|
|
positionAbsolute:
|
|
x: 612
|
|
y: 235
|
|
selected: true
|
|
sourcePosition: right
|
|
targetPosition: left
|
|
type: custom
|
|
width: 242
|
|
viewport:
|
|
x: 19
|
|
y: -99.1999999999999
|
|
zoom: 1
|
|
rag_pipeline_variables: []
|