当前位置: 首页 > news >正文

Dify - 架构、部署、扩展与二次开发指南

本文详细解析 Dify 的架构、部署流程、高可用中间件的独立部署方法,以及二次开发流程,帮助开发者更高效地管理和扩展 Dify。


1. 本地DEMO部署

安装Docker,执行下面脚本,可能需要配置镜像。

git clone https://github.com/langgenius/dify.git
cd dify
cd docker
cp .env.example .env
docker compose up -d

在这里插入图片描述

1. Dify 部署后的整体结构

Dify 使用容器部署,主要由多个模块组成,分为 Dify 核心服务中间件组件存储支持,所有流量经过 Nginx 反向代理 进行管理。

在这里插入图片描述

1.1 Dify 核心服务

组件作用端口
api核心 API 服务,处理用户请求5001
work核心任务服务,处理用户任务执行
webWeb 前端3000
plugin_daemon插件管理守护进程5002
sandbox代码沙箱,提供安全执行环境,执行shell、调用url8194

1.2 中间件

Dify 依赖多个中间件组件来存储数据和提供缓存支持:

组件作用端口
PostgreSQL主要数据库,存储核心数据5432
Redis缓存层,提升性能6379
Weaviate / Qdrant / Milvus/…向量数据库,支持多种向量数据库8080 (Weaviate), 6333 (Qdrant), 19530 (Milvus)
ssrf_proxy请求代理,使用squid,防止 SSRF 攻击3128

1.3 Nginx 作为网关

Nginx 充当反向代理,管理所有流量:

  • nginx:80 处理所有进入的流量,并路由到 web:3000api:5001plugin_daemon:5002
  • plugin_daemon:5002 可连接到 Marketplace,连接 Marketplace 需要Docker配置代理。

1.4 一个专用网络

在sandbox、api和ssrf_proxy之间创建一个网络,sandbox不能直接访问外部,防止SSRF攻击。


2. 如何单独部署高可用中间件

如果希望将 PostgreSQL、Redis 等中间件独立部署以提升可靠性,可以参考以下方式。

2.1 部署高可用 PostgreSQL

可以使用 PostgreSQL 主从复制Patroni + etcd 方案:

services:db_primary:image: postgres:15-alpineenvironment:POSTGRES_PASSWORD: "difyai123456"POSTGRES_DB: "dify"volumes:- ./volumes/db/primary:/var/lib/postgresql/dataports:- "5432:5432"db_replica:image: postgres:15-alpineenvironment:POSTGRES_PASSWORD: "difyai123456"POSTGRES_DB: "dify"POSTGRES_REPLICATION_ROLE: "replica"POSTGRES_PRIMARY_HOST: "db_primary"volumes:- ./volumes/db/replica:/var/lib/postgresql/data

修改 .envdocker-compose.yaml 配置 PostgreSQL 地址:

environment:DB_HOST: "your-external-postgres-host"DB_PORT: "5432"

2.2 部署高可用 Redis

使用 Redis Sentinel 进行高可用部署:

services:redis_master:image: redis:6-alpinecommand: redis-server --requirepass "difyai123456"ports:- "6379:6379"redis_sentinel:image: bitnami/redis-sentinelenvironment:REDIS_MASTER_HOST: "redis_master"REDIS_MASTER_PASSWORD: "difyai123456"ports:- "26379:26379"

修改 .envdocker-compose.yaml 配置 Redis 地址:

environment:REDIS_HOST: "your-external-redis-host"REDIS_PORT: "6379"

2.3 部署外部向量数据库

Dify 支持 Milvus, Qdrant, Weaviate 等向量数据库,独立部署方式如下:

services:milvus:image: milvusdb/milvus:v2.5.0-betaports:- "19530:19530"

修改 docker-compose.yaml 配置 Milvus 地址:

environment:VECTOR_STORE: "milvus"MILVUS_URI: "http://your-external-milvus-host:19530"

3. 如何进行二次开发

在这里插入图片描述

3.1 修改代码

如果需要修改 Dify API 代码,例如添加自定义 API 端点:

  1. 克隆 Dify 代码仓库:
    git clone https://github.com/langgenius/dify.git
    cd dify
    
  2. 进入 api 目录,修改 Python 代码:
    cd api
    vim app/routes/custom.py
    
    示例:添加新接口
    from flask import Blueprint, jsonifycustom_api = Blueprint('custom_api', __name__)@custom_api.route('/custom-endpoint', methods=['GET'])
    def custom_endpoint():return jsonify({'message': 'Hello from custom API!'})app.register_blueprint(custom_api)
    

3.2 重新打包 API 镜像

  1. 进入 api 目录,构建新的 API 镜像:
    docker build -t dify-api-custom .
    
  2. 修改 docker-compose.yaml 以使用自定义镜像:
    services:api:image: dify-api-custom
    
  3. 重新部署:
    docker-compose down && docker-compose up -d
    

3.3 修改 Web 前端

  1. 进入 web 目录:
    cd web
    vim src/pages/index.tsx
    
  2. 重新构建 Web 镜像:
    docker build -t dify-web-custom .
    
  3. 修改 docker-compose.yaml 以使用自定义镜像:
    services:web:image: dify-web-custom
    
  4. 重新部署:
    docker-compose down && docker-compose up -d
    

3.4 修改环境变量

Dify 依赖多个 .env 配置文件:

  • 修改 middleware.env (用于中间件)
  • 修改 .env(用于核心 API)

例如,修改 .env 使用阿里云 OSS:

STORAGE_TYPE=opendal
OPENDAL_SCHEME=oss
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
ALIYUN_OSS_ACCESS_KEY=your-access-key
ALIYUN_OSS_SECRET_KEY=your-secret-key
ALIYUN_OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com

4. 总结

  • Dify 架构:由 API、Web 前端、插件系统、沙箱环境和多个中间件组成。
  • 独立部署高可用中间件:可以单独部署 PostgreSQL、Redis 和向量数据库,并修改 docker-compose.middleware.yaml 进行配置。
  • 二次开发流程
    1. 修改 apiweb 代码
    2. 重新打包 Docker 镜像
    3. 修改 docker-compose.yaml 使其使用新的镜像
    4. 修改 .env 适配存储配置

通过本指南,你可以更高效地管理 Dify 的部署、扩展和二次开发,提高 AI 应用的灵活性和可维护性。

相关文章:

Dify - 架构、部署、扩展与二次开发指南

本文详细解析 Dify 的架构、部署流程、高可用中间件的独立部署方法,以及二次开发流程,帮助开发者更高效地管理和扩展 Dify。 1. 本地DEMO部署 安装Docker,执行下面脚本,可能需要配置镜像。 git clone https://github.com/langge…...

用DrissionPage升级网易云音乐爬虫:更稳定高效地获取歌单音乐(附原码)

一、传统爬虫的痛点分析 原代码使用requests re的方案存在以下局限性: 动态内容缺失:无法获取JavaScript渲染后的页面内容 维护成本高:网页结构变化需频繁调整正则表达式 反爬易触发:简单请求头伪造容易被识别 资源消耗大&am…...

详细Linux中级知识(不断完善)

Nginx服务配置 基于主机名配置 映射IP和主机名 [rootlocalhost ~]# vim /etc/hosts 192.168.72.135 www.chengke.com chengke[rootlocalhost ~]# echo "192.168.72.135 www.xx.com" >> /etc/hosts以上是两种方法,前面是你的IP地址,后…...

Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术

Softmax温度调节与注意力缩放:深度神经网络中的平滑艺术 在深度学习的精密机械中,有些细微的调整机制往往被视为理所当然,却实际上蕴含着深刻的数学洞察和巧妙的工程智慧。今天,我们将探讨两个看似独立却本质相通的机制&#xff…...

python打包辅助工具

python打包辅助工具 PyInstaller 是一个非常流行的 Python 应用程序打包工具,它可以将 Python 脚本及其依赖项打包成独立的可执行文件,方便在没有 Python 环境的机器上运行。关于PyInstaller,可参见:https://blog.csdn.net/cnds1…...

jangow靶机攻略

配置网卡 VMware需要配置,不配置扫不到ip,VirtualBox正常打开ip会直接显示出来 网卡配置都改成NAT 打开虚拟机,第一个框选第二行,回车 选第二个,按e键 进入下一个框后,将ro 后面的修改为 rw signin init/bin/bash 按…...

【大模型LLM第十四篇】Agent学习之anthropic-quickstarts Agent

前言 对于anthropic api的快速使用,在github上有几个example Customer Support Agent:由 Claude 提供支持的客户支持代理。该项目演示了如何利用 Claude 的自然语言理解和生成功能来创建可访问知识库的 AI 辅助客户支持系统。Financial Data Analyst &…...

MonIo部署

1、命令行安装 访问monio官网下载应用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…...

深入理解智能家居领域中RS485、Modbus、KNX 和 Zigbee协议概念

首先详细介绍一下 RS485 和 Modbus 这两个在工业自动化和数据通讯领域中非常重要的概念。 RS485 1. 定义与特点 RS485 标准:RS485 是一种串行通信标准,也称为TIA-485标准,主要用于数据传输。它规定了物理层的电气特性,与数据格式…...

Spring Boot深度解析:从核心原理到最佳实践

一、Spring Boot概述 Spring Boot作为Spring生态中的"游戏规则改变者",自2014年发布以来彻底改变了Java企业级应用的开发方式。它通过四大核心特性显著提升了开发效率: 自动配置:基于类路径和已有Bean的智能默认配置起步依赖:简化Maven/Gradle依赖管理的Starter…...

MapReduce过程中reduce task的数量是如何确定的?

在Hadoop MapReduce及Hive中,numReduceTasks(Reduce任务数量)的确定由用户显式设置、框架自动估算、作业特性约束三方面共同决定。以下是详细解析及示例: 1. 用户显式设置 用户可以通过代码或配置参数直接指定Reduce任务数&#…...

【euclid】21 3D包围盒模块(box3d.rs)

box3d.rs文件定义了一个三维轴对齐的矩形框(Box3D),使用最小和最大坐标来表示。矩形框在坐标类型(T)和单位(U)上是泛型的。代码提供了多种方法来操作和查询矩形框,包括求交集、并集、…...

用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)

一、豆瓣电影 肖申克的救赎 短评url=https://movie.douban.com/subject/1292052/comments 二、基本知识点讲解 1. Selenium 的基本使用 Selenium 是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下 Selenium 的核心功能: webdriver.Chrome: 启动 Chr…...

mysql入门操作

目录 一,MySQL简述 1,什么是MySQL 2,什么是SQL 3,SQL的分类 二,数据库的数据存储类型 1,数值类型 2,字符串类型 3,时间和日期类型 三,数据库的基本操作 1&…...

机械臂【逆运动学】

回顾正运动学fk: IK: 几何法 代数法 六轴 456轴交再同一点 有解析解 下列公式为正运动学部分结论 a和d是长度 ,theta和alfa是角度 **疑问:alfa00? Z轴互相平行 ** 已知末端要在空间XYZ处如下 绿色项&#x…...

思库拉水厂开业庆典千人大会回顾

近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...

将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息

将Wi-Fi模块订阅MQTT主题以获取最新的固件版本推送信息,是一种常见的物联网(IoT)应用场景。这种设计可以实现远程监控和设备的OTA(Over-The-Air)升级功能。以下是详细的实现步骤和技术细节: 一、系统架构概…...

Netty源码—5.Pipeline和Handler一

大纲 1.Pipeline和Handler的作用和构成 2.ChannelHandler的分类 3.几个特殊的ChannelHandler 4.ChannelHandler的生命周期 5.ChannelPipeline的事件处理 6.关于ChannelPipeline的问题整理 7.ChannelPipeline主要包括三部分内容 8.ChannelPipeline的初始化 9.ChannelPi…...

Vue 中的nextTick函数的原理、作用及使用场景。

大白话Vue 中的nextTick函数的原理、作用及使用场景 在 Vue 里,nextTick 函数是个超实用的工具,它能让你在 DOM 更新完成之后再执行代码。为了能更好地理解 nextTick 函数的原理,咱们就来深入剖析一下。 核心思路 Vue 里的数据更新是异步执…...

详细讲解css的穿透方法

样式穿透(CSS穿透)的几种方法,包括在Vue中使用::v-deep、>>>、/deep/,还有pointer-events属性。还有关于Shadow DOM和::part伪元素的内容。接下来我会把这些方法分类,并详细说明每种方法的适用场景和注意事项…...

深入理解 tree 命令行工具:目录结构可视化的利器

文章目录 前言1. 什么是 tree 命令?安装 tree 2. tree 的基本用法显示当前目录的树状结构显示指定目录的树状结构 3. tree 的常用选项3.1 显示隐藏文件3.2 排除特定目录或文件3.3 限制递归深度3.4 显示文件大小3.5 显示文件的权限信息3.6 将输出保存到文件 4. 实际应…...

【QA】QT中事件和信号的区别以及联系是什么?

在 Qt 中,事件(Event) 和 信号与槽(Signals & Slots) 是 GUI 编程的核心机制,它们既有联系又有本质区别。以下从底层原理、触发流程、代码实现、适用场景四个维度展开对比,并通过大量示例说…...

C++实用函数:find与find_if

本篇来介绍C++中find和find_if函数的使用,通过多个实例来演示。 find用于基础的查找功能,find_if可以实现更复杂的匹配查找条件。 1 find 1.1 函数原型 template <class InputIterator, class T> InputIterator find ( InputIterator first, InputIterator last, c…...

全面了解 Cookies、Session 和 Token

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

酷淘商场项目【从零到一详解】Web端

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…...

如何转移虚拟主机?最新虚拟主机迁移方法

转移网站并不困难&#xff0c;但选择正确的选项和最佳程序才是关键。网站托管服务被视为当今数字世界的基石&#xff0c;全球有18 亿个网站。网站所有者可以通过下载备份、将其上传到新服务器并指向域名来手动转移网站。他们还可以通过新网站托管商的助手请求来移动网站。对于初…...

JVM 核心知识点总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

无人机数据链技术详解,无人机图传数传技术,无人机数据传输技术原理

以下是对无人机数据链技术、无人机图传数传技术以及无人机数据传输技术原理的详细解释&#xff1a; 无人机数据链技术 无人机数据链是任务机、地面控制站之间&#xff0c;以及任务机与中继机、武器系统或其它操作平台之间&#xff0c;按照约定的通信协议和信息传输方式&#…...

【Linux】同步原理剖析及模拟BlockQueue生产消费模型

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

【AVRCP】GOEP互操作性深度解析:蓝牙封面艺术传输的技术实现与演进

目录 一、技术基础&#xff1a;协议架构与核心概念 1.1 GOEP协议体系解析 1.2 IrOBEX协议关键技术 1.3 版本强制性要求 1.4 关键特性对比&#xff08;GOEP v2.0 vs v1.1&#xff09; 1.5 关键技术实现细节 1.6 GOEP v2.0互操作性要求 1.7 IrOBEX v1.5互操作性要求 二、…...

三分钟读懂微服务

一、什么是微服务 微服务&#xff0c;简单来说&#xff0c;就是把一个庞大复杂的软件系统&#xff0c;拆分成一个个小型的、独立的服务模块。打个比方&#xff0c;一个大型商场就如同传统的单体架构软件系统&#xff0c;里面所有的店铺、设施都紧密关联在一起。而微服务架构下…...

《Oracle DBA入门实战:十大高频问题详解与避坑指南》

Oracle DBA 入门作业十问十答 本文为 Oracle DBA 入门作业整理&#xff0c;涵盖工具使用、配置管理及权限控制等核心知识点&#xff0c;适合新手快速上手。 如有疑问或补充&#xff0c;欢迎评论区交流&#xff01; 1. DBA 常用工具有哪些&#xff1f; Oracle Universal Instal…...

深入剖析 Android Compose 框架的自动动画:AnimatedVisibility 与 AnimatedContent(二十四)

深入剖析 Android Compose 框架的自动动画&#xff1a;AnimatedVisibility 与 AnimatedContent 引言 在 Android 应用开发中&#xff0c;动画是提升用户体验的重要手段。它能够让界面元素的显示与隐藏、状态的切换变得更加自然和流畅&#xff0c;避免生硬的变化给用户带来不佳…...

【线程安全问题的原因和方法】【java形式】【图片详解】

在本章节中采用实例图片的方式&#xff0c;以一个学习者的姿态进行描述问题解决问题&#xff0c;更加清晰明了&#xff0c;以及过程中会发问的问题都会一一进行呈现 目录 线程安全演示线程不安全情况图片解释&#xff1a; 将上述代码进行修改【从并行转化成穿行的方式】不会出…...

Cocos Creator Shader入门实战(六):使用setProperty动态设置材质属性,以及材质常用接口

引擎&#xff1a;3.8.5 您好&#xff0c;我是鹤九日&#xff01; 回顾 上篇文章&#xff0c;我们主要讲解了关于材质的使用&#xff0c;主要有这么几点&#xff1a; 一、没有Effect资源&#xff0c;材质无从说起。 二、材质的构建&#xff0c;支持编译器和代码的动态构建 三…...

编程题记录3

九宫幻方 题目链接&#xff1a;https://www.lanqiao.cn/problems/100/learning/?page1&first_category_id1&second_category_id3&tags%E7%9C%81%E8%B5%9B&tag_relationintersection 先旋转、镜像得到所有的情况&#xff0c;可以发现情况是可以暴力得出的。…...

Geotools自动识别SLD并生成图例图片实战-以Polygon数据为例

目录 前言 一、Geotools与SLD制图基础 1、SLD是什么 2、SLD有什么用 二、SLD文件的解析与读取 1、SLD结构介绍 2、SLD实例展示 3、SLD读取方法 三、图例生成与展示 1、图例生成流程 2、图例生成实战 3、图例生成展示 四、结论 前言 在地理信息系统&#xff08;GIS&…...

windows docker如何修改 默认的Container memory usage

参考:https://forums.docker.com/t/docker-on-windows-11-with-wsl2-does-not-use-the-memory-i-set-in-wslconfig/144404/3 参考:https://learn.microsoft.com/en-us/windows/wsl/wsl-config...

LabVIEW液压传动系统教学仿真平台

本文介绍了一种基于LabVIEW的液压传动系统教学仿真平台&#xff0c;该平台采用“老师讲解、线上仿真、线下操作”的复合实验模式&#xff0c;旨在提高实验教学的效率与安全性。通过实例验证&#xff0c;展示了该平台在教学和实际操作中的应用效果&#xff0c;同时也为液压传动系…...

Java实习生面试题(2025.3.23 be)

一、v-if与v-show的区别 v-show 和 v-if 都是 Vue 中的条件渲染指令&#xff0c;它们的主要区别在于渲染策略&#xff1a;v-if 会根据条件决定是否编译元素&#xff0c;而 v-show 则始终编译元素&#xff0c;只是通过改变 CSS 的 display 属性来控制显示与隐藏。 二、mybatis-…...

OpenCV第2课 OpenCV的组成结构与图片/视频的加载及展示

1.OpenCV 的组成结构 2.OpenCV 的具体模块 3. 图像的读取 4. 视频的读取 1.OpenCV 的组成结构 OpenCV 是由很多模块组成的,这些模块可以分成很多层: 最底层是基于硬件加速层(HAL)的各种硬件优化。再上一层是opencv_contrib 模块所包含的OpenCV 由其他开发人员所贡献的代…...

Blender导出fbx到Unity找不到贴图的问题

fbx导入Unity材质能不能找到贴图是一件玄学的事情。常见的情况是有些材质能找到&#xff0c;有些找不到&#xff1a; 可能有用的方法 解决方法1&#xff1a;把贴图文件复制过去&#xff0c;模型reimport&#xff1b; 解决方法2&#xff1a;导出时路径模式选复制&#xff0c;内…...

kafka的文章

1.面试的问题 要点 至多一次、恰好一次数据一致性超时重试、幂等消息顺序消息挤压延时消息 1.1 kafaka 生产消息的过程。 在消息发送的过程中&#xff0c;涉及到了两个线程&#xff0c;一个是main 线程&#xff0c;一个是sender 线程。在main 线程中创建了一个双端队列 Reco…...

Go常见问题与回答(下)

文章目录 1、通过指针变量 p 访问其成员变量 name&#xff0c;有哪几种方式&#xff1f;2、代码&#xff0c;说出结果3、扩容提&#xff0c;代码&#xff0c;说出结果4、指出下面这段代码的错误之处5、是否通过编译6、关于字符串连接&#xff0c;下面语法正确的是7、关于iota&a…...

vue3中如何缓存路由组件

在 Vue3 中缓存路由组件&#xff0c;主要借助<keep-alive>组件来实现&#xff0c;具体方法如下&#xff1a; 1. 全局缓存路由组件 在 App.vue 等根组件中&#xff0c;直接将<router-view>包裹在<keep-alive>标签内&#xff0c;这样所有的路由组件都会被缓存…...

云服务器怎么防御ddos攻击呢?

防御DDoS攻击是保障云服务器稳定运行的关键措施&#xff0c;以下是综合多种防护策略的详细方案&#xff1a; 1. 启用云服务商提供的DDoS防护服务 高防IP/流量清洗&#xff1a; 将业务流量接入云服务商的高防IP&#xff0c;由专业清洗中心过滤恶意流量&#xff0c;仅放行正常请求…...

Log4j2 的核心实现和源码分析

Log4j2 的核心实现和源码分析 1. 核心组件 1.1 Logger 功能:负责记录日志信息。实现:org.apache.logging.log4j.Logger 接口,org.apache.logging.log4j.core.Logger 类。1.2 Appender 功能:负责将日志信息输出到不同的目的地,如文件、控制台等。实现:org.apache.loggin…...

【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV3模型部署

【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV3模型部署 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【目标检测】【OnnxRuntime】【C】YOLOV3模型部署前言Windows平台搭建依赖环境模型转换--pytorch转onnxONNXRuntime推…...

四种跨模态行人重识别可视化方法

1.Gradcam 2.检索可视化 3.tsne图 4.距离分布 需要的私聊&#xff0c;代码需要付费...

8个DeepSeek文章润色指令

今天道叔给各位文字工作者安利DeepSeek的8个神仙级润色指令(附真实案例拆解)&#xff0c;建议搭配冰美式食用更佳↓↓↓ 一、【学术黑话翻译器】 适用场景&#xff1a;给投资人看的BP/行业白皮书/专家访谈实录 指令公式&#xff1a;"将以下内容转化为通俗易懂的行业洞察…...