- 博客(138)
- 资源 (29)
- 收藏
- 关注
原创 App Runner和Task Pipeline中的数据库连接管理指南
由于 App Runner 中存在一些需要长时间执行的任务,如大语言模型(LLM)生成和外部请求,Flask-Sqlalchemy 的数据库连接池策略是每个请求分配一个连接(事务)。这种方式会导致在执行非数据库任务时,连接仍然被占用,进而在高并发请求时,由于多个长时间运行的任务,无法获取新的连接。因此,App Runner 和任务管道中的数据库操作必须确保在使用后立即关闭连接,建议传递 ID 而不是 Model 对象,以避免分离(deattach)错误。
2025-05-27 18:30:01
662
原创 RAGFlow源码安装操作过程
RAGFlow是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎,可作为Dify的外部知识库使用[1]。本文主要介绍RAGFlow前端和后端等源码安装操作过程。
2025-05-26 19:18:26
848
原创 Dify中的Extension插件开发例子:以neko为例
本文使用Dify v1.0.0-beta.1版本。以neko为例,介绍Dify中的Extension插件开发例子。需要说明的是Dify官方要求Python≥3.12,但发现本地PyCharm调试Python≥3.12有问题,就采用的Python 3.11版本。
2025-05-26 19:15:40
903
原创 Dify中的Agent策略插件开发例子:以Function Calling为例
本文使用Dify v1.0.0-beta.1版本。Agent 策略插件能够帮助 LLM 执行推理或决策逻辑,包括工具选择、调用和结果处理,以更加自动化的方式处理问题。Dify官方实现的Agent策略插件包括Function Calling和Reason+ReAct(Reason+Act)。本文重点介绍Function Calling具体实现。
2025-05-26 19:12:35
1694
原创 Dify中的自定义模型插件开发例子:以xinference为例
本文使用Dify v1.0.0-beta.1版本。模型插件结构基本是模型供应商(模型公司,比如siliconflow、xinference)- 模型分类(模型类型,比如llm、rerank、speech2text、text_embedding、tts)- 具体模型(比如,deepseek-v2.5)。本文以xinference为例,介绍Dify中的自定义模型插件开发例子。
2025-05-26 19:03:11
822
原创 Dify中的预定义模型插件开发例子:以siliconflow为例
本文使用Dify v1.0.0-beta.1版本。模型插件结构基本是模型供应商(模型公司,比如siliconflow、xinference)- 模型分类(模型类型,比如llm、rerank、speech2text、text_embedding、tts)- 具体模型(比如,deepseek-v2.5)。本文以siliconflow为例,介绍Dify中的预定义模型插件开发例子。
2025-05-26 19:00:39
871
原创 Dify中的GoogleSearch工具插件开发例子
从Dify v1.0.0-beta.1开始,推出全新的Dify市场,插件代码已经从Dify主干中移除。但是无论如何变化,整体思想就是解耦合,让插件开发更加独立化,插件开发的本质并没有任何变化。本文以 GoogleSearch 为例,介绍如何快速开发一个工具插件。
2025-05-26 18:57:34
877
原创 Dify中的插件生态系统
从Dify v1.0.0-beta.1开始,推出全新的Dify市场。Dify中的插件包括几种分类,分别是Models(模型)、Tools(工具)、Agent 策略、Extensions(扩展)、Bundle(插件包)。插件系统还具备更加友好的传播属性,可通过 Dify Marketplace [1]或 GitHub [2]以及本地文件 [3]的形式分享插件,其它开发者能够便捷地安装插件。
2025-05-26 18:54:59
827
原创 dify_plugin数据库中的表总结
本文使用dify-plugin-daemon v0.1.0版本,主要对dify_plugin数据库中的数据表进行了总结。
2025-05-25 22:58:28
447
原创 dify-plugin-daemon的.env配置文件
本文使用dify-plugin-daemon v0.1.0版本,主要总结了dify-plugin-daemon\.env配置文件。为了本地调试方便,采用本地运行时环境WSL2+Ubuntu22.04方式运行dify-plugin-daemon服务。
2025-05-25 20:34:27
701
原创 PYTORCH_CUDA_ALLOC_CONF基本原理和具体示例
PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb 是 PyTorch 提供的一项环境变量配置,用于控制 CUDA 显存分配的行为。通过指定此参数,可以有效管理 GPU 显存的碎片化,缓解因显存碎片化而导致的 "CUDA out of memory"(显存溢出)问题。
2025-05-22 15:29:06
566
原创 LLM模型的generate和chat函数区别
在 Hugging Face 的 transformers 库中,GPT(Generative Pre-trained Transformer)类的模型有两个常用的生成文本的方法:generate 和 chat。这两个方法在使用上有一些区别。通常公司发布的 LLM 模型会有一个基础版本,还会有一个 Chat 版本。比如,Qwen-7B(基础版本)和 Qwen-7B-Chat(Chat 版本)。
2024-12-14 11:01:42
830
原创 当 docker-compose.yaml 文件部署时,Dify 线上版本升级过程
本文主要介绍当 docker-compose.yaml 文件部署时,Dify 线上版本升级过程。主要用到的内容就是 docker 目录中的这些文件。对这些文件的详细介绍,参考文献[2]。
2024-11-17 17:00:28
7513
4
原创 Dify 通过导入 DSL 文件创建 Workflow 过程及实现
本文使用 Dify v0.9.2 版本,主要介绍 Dify 通过导入 DSL(或 URL)文件创建(或导出)Workflow 的操作过程及源码分析实现过程。
2024-11-17 16:58:50
5347
原创 Dify 通过 API 调用 RAGFlow 外部知识库
本文使用 Dify v0.10.0+ 和 RAGFlow v0.12.0+ 版本(源码运行)。Dify 中的 RAG 一直被诟病,现在 Dify 提供了外部知识库 API,这样就可以连接到 Dify 之外的知识库并从中检索知识。第一个问题是 API 规范,包括接口格式、输入和输出参数等。第二个问题是哪些外部知识库支持该 API 呢?理论上讲只要支持 API 规范都是可行的。
2024-11-16 22:40:43
8005
8
原创 Dify 中误删或更新 privkeys 后导致 File not found 问题及解决方案
本文使用 Dify v0.10.2 版本,主要介绍了在迁移或部署 Dify 时,可能由于误删或更新 privkeys 后导致 File not found 问题及解决方案,参考文献[1]。
2024-11-16 22:39:00
1959
2
原创 Dify 中获取应用(Chatflow)的对话记录
本文使用 Dify v0.11.1 版本,主要介绍 Dify 中获取应用(Chatflow)对话记录的过程和原理。
2024-11-15 23:55:43
8271
5
原创 Dify 中自带的门诊导诊工作流(Chatflow)
本文使用 Dify v0.7.2 版本。此聊天流程展示了如何构建一个用于门诊导诊的聊天机器人,可通过网页或语音对话来收集病人的数据。简单理解,即根据患者信息(年龄、性别和症状),给患者推荐科室。
2024-11-14 23:16:01
7329
13
原创 打通 Dify 和 ComfyUI 的绘画尝试
通过 Dify 可以调动很多 ComfyUI 工作流,以及第三方的图像、视频、音频模型的 API 接口。真正实现了控制与执行的分离,协同完成内容创作。打通 Dify 和 ComfyUI 技术实现思路:(1)Dify 工作流 HTTP 请求节点;(2)Flask 封装 REST 接口;(3)REST 接口中调用导出的 ComfyUI 工作流 json 文件。其它要注意的是 Dify 给 ComfyUI 的 prompt 参数传递,以及 ComfyUI 生成的图像返回给 Dify。
2024-11-14 23:13:16
1009
原创 Dify 中的 @login_required 装饰器
本文主要介绍了 Dify 中的 @login_required 装饰器的具体实现过程,用于确保用户在调用视图函数之前已经登录和认证。源码位置:dify\api\libs\login.py。
2024-11-04 17:28:09
1146
原创 Dify 中的 Bearer Token 与 API-Key 鉴权方式
本文使用 Dify v0.10.2 版本,在 Dify 中包括 Bearer Token 与 API-Key 鉴权这 2 种方式。console(URL 前缀/console/api)和 web(URL 前缀/api)蓝图使用的是 Bearer Token 鉴权方式,而 service_api(URL 前缀/v1)蓝图使用的是 API-Key 鉴权方式。
2024-11-04 17:26:36
3327
原创 Python 中的方法解析顺序(MRO)
在 Python 中,MRO(Method Resolution Order,方法解析顺序)是指类继承体系中,Python 如何确定在调用方法时的解析顺序。MRO 决定了在多继承环境下,Python 如何寻找方法或属性,即它会根据一定规则从父类中查找方法或属性,避免重复继承带来的歧义。
2024-09-21 00:03:03
2464
原创 Python 中的 Kombu 类库
Kombu 是一个用于 Python 的消息队列库,提供了高效、灵活的消息传递机制。它是 Celery 的核心组件之一,但也可以单独使用。Kombu 支持多种消息代理(如 RabbitMQ、Redis、Amazon SQS 等),并提供了消息生产者和消费者的功能。安装命令 pip install kombu redis。
2024-09-21 00:01:08
2396
原创 对 Python 中 GIL 的理解
Python 中的全局解释器锁(Global Interpreter Lock,GIL)是 CPython 解释器的一个机制,用来确保在多线程环境下,只有一个线程可以执行 Python 字节码,任何时刻只能有一个线程在执行 Python 代码。这意味着,即使有多个 CPU 核心,Python 的多线程程序在同一时间也只有一个线程在执行,无法充分利用多核处理器的优势。
2024-09-20 08:26:37
1850
原创 Python 中的 typing 模块常见用法
typing 模块是 Python 提供的一个标准库,主要用于为函数、变量和类定义类型提示(Type Hints),从而提高代码的可读性和类型安全性。虽然 Python 是动态类型语言,但通过 typing 模块,开发者可以明确指定变量和函数的参数、返回值的类型,帮助 IDE 或静态代码分析工具提供更好的代码提示和错误检查。虽然 Python 本身不会强制执行这些类型检查,但借助 mypy 等工具,可以进行静态类型分析,帮助发现潜在问题。
2024-09-20 08:23:29
2138
原创 Flask、Werkzeug 和 WSGI 间的关系
Flask 是一个基于 Werkzeug 和 Jinja2 模板引擎的轻量级 Web 框架。Werkzeug 是 Flask 的底层 WSGI 工具包,它提供了 WSGI 服务器、请求和响应对象、路由等基础功能,Flask 在此基础上构建了更高级的 Web 框架功能。
2024-09-19 09:29:15
764
原创 PyCharm 调试 Xinference 遇到问题及解决方案
本文使用的 PyCharm 2024.2.1 版本,如果使用低版本 PyCharm,那么在调试 Xinference v0.15.1 源码时可能会报错 Connection to Python debugger failed Socket closed。
2024-09-19 09:22:12
1900
原创 将flux1画图API封装为Dify工作流
本文主要介绍将公开的 flux1 画图 API(https://api-flux1.api4gpt.com/)封装为 Dify 工作流。
2024-09-18 23:29:34
835
原创 Dify 中的讯飞星火平台工具源码分析
本文主要对 Dify 中的讯飞星火平台工具 spark 进行了源码分析,该工具可根据用户的输入生成图片,由讯飞星火提供图片生成 API。通过本文学习可自行实现将第三方 API 封装为 Dify 中工具的能力。
2024-09-18 23:27:31
3041
2
原创 在Ubuntu20.04中Docker使用GPU设备可能遇到的一种问题
在使用pytorch/torchserve:0.11.0-gpu镜像的时候,可能会遇到Error response from daemon: could not select device driver "nvidia" with capabilities: [[gpu]]。本质原因是没有安装nvidia-docker相关依赖包。
2024-08-08 21:15:48
755
原创 在Dify中添加非内置的SiliconCloud模型
本文介绍了在Dify中添加SiliconCloud模型的两种方式,重点介绍了Dify中添加非内置的SiliconCloud模型的操作过程。
2024-08-08 21:14:13
1387
原创 Python操作Redis指南
文本主要介绍使用Python中的redis-py库来操作Redis数据库,包括安装必要的包、建立和关闭连接、执行增删改查操作以及处理可能的异常。这些操作将在Python应用程序中与Redis数据库进行有效的交互。
2024-07-27 18:57:08
546
原创 Python操作PostgreSQL指南
文本介绍了使用Python中的psycopg2库来操作PostgreSQL数据库,包括安装必要的包、建立和关闭连接、执行增删改查操作以及处理可能的异常。这些操作将在Python应用程序中与PostgreSQL数据库进行有效的交互。
2024-07-27 18:56:22
2005
2
原创 Python客户端操作Elasticsearch
这段代码是使用Python的elasticsearch模块与Elasticsearch进行交互的示例。
2024-07-27 18:55:40
1087
原创 Poetry入门教程
以前使用模块管理和虚拟环境为pip和Virtualenv组合,随着Rasa、Dify等开源项目逐步使用Poetry模块管理,也开始尝试使用Poetry。本文简要介绍Poetry入门操作。
2024-07-27 18:54:45
2633
原创 Dify中语音和文字间转换问题的一种暂时注释方式
本文主要解释了Dify中语音和文字间转换可能会遇到的问题,并给出了一种暂时注释的解决方案。
2024-07-27 18:53:28
4079
17
原创 图文长故事生成器工作流
本文主要从2个角度介绍了图文长故事生成器工作流,分别是每个故事画一张图(比如关于心态的故事)和每个段落画一张图。因为每个故事由多个段落组成,后者即对每个段落画一张图。更具体的工作流不再介绍,详细参考文献[2]。
2024-07-27 18:52:29
1487
原创 Dify自带的长故事生成器工作流
本文主要简要的介绍了Dify自带的长故事生成器工作流的实践过程,尤其是迭代节点和代码节点的灵活组合,可以让Dify工作流如虎添翼。当工作流执行结束后,可以通过查看日志->追踪,对于工作流中每个节点执行情况进行详细的查看和调试。
2024-07-27 18:51:16
4274
Snort入侵检测
2013-03-12
MySql常用命令详解
2013-05-08
岭回归分析总结
2014-04-21
apache-ant-1.8.3-bin.tar
2014-11-02
ResNet的TensorFlow实现
2019-01-22
TextRNN的TensorFlow实现
2019-01-24
ResNet的Keras实现
2019-01-22
JavaScript权威指南
2013-03-22
python-delicious-master
2014-05-28
人工智能干货推荐.txt
2019-06-20
Git-1.9.4-preview20140611.exe
2014-07-15
概率与计算
2014-08-21
知者无畏:一个真实的病毒世界
2013-03-10
flasky.zip
2019-05-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人