#LLMOps##AIGC# Dify_构建本地知识库问答应用-生成Al应用的创新引擎 用于构建助手API和GPT的开源开发平台

github: https://github.com/langgenius/dify/blob/main/README_CN.md
介绍文档:https://docs.dify.ai/getting-started/readme

Dify 介绍

Dify 笔记

  • Dify 是什么?
    • 开源的大语言模型(LLM)应用开发平台
    • 融合了后端即服务(Backend as Service)和 LLMOps 的理念
    • 使开发者可以快速搭建生产级的生成式 AI 应用
  • 为什么使用 Dify?
    • 易用性:即使是非技术人员也能参与到 AI 应用的定义和数据运营过程中
    • 灵活性:支持各种类型的 LLM,并提供了丰富的插件,可以满足各种需求
    • 可扩展性:可以部署在云端或本地,可以满足不同规模的应用需求
  • Dify 能做什么?
    • 创业:快速将 AI 应用创意变成现实
    • 将 LLM 集成至已有业务:增强现有应用的能力
    • 作为企业级 LLM 基础设施:加速 GenAI 技术在企业内的推广
    • 探索 LLM 的能力边界:实践 Prompt 工程和 Agent 技术
      请添加图片描述

Dify 的优势

  • 易用性:Dify 的使用门槛较低,即使是非技术人员也能参与到 AI 应用的定义和数据运营过程中。
  • 灵活性:Dify 支持各种类型的 LLM,并提供了丰富的插件,可以满足各种需求。
  • 可扩展性:Dify 可以部署在云端或本地,可以满足不同规模的应用需求。

Dify 的应用场景

  • 创业:快速将 AI 应用创意变成现实。
  • 将 LLM 集成至已有业务:增强现有应用的能力。
  • 作为企业级 LLM 基础设施:加速 GenAI 技术在企业内的推广。
  • 探索 LLM 的能力边界:实践 Prompt 工程和 Agent 技术。

部署与使用

方法一:使用云服务

https://cloud.dify.ai/apps
使用云服务就无需本地部署了

    1. 登录 Dify 云服务,创建一个或加入已有的 Workspace
  • 2.配置你的模型供应商,或使用我们提供的托管模型供应商
    1. 创建应用

方法二:本地部署

这里使用 Docker 部署,安装前确定已经部署好 Docker、Docker-compose。
将项目 clone 下来:

git clone https://github.com/langgenius/dify.git

进入 dify 源代码的 docker 目录,使用 docker 启动:
cd dify/docker
docker-compose up -d
下载好镜像启动后,可以看到相关服务:

NAME                IMAGE                              COMMAND                  SERVICE             CREATED             STATUS              PORTS
docker-api-1        langgenius/dify-api:0.3.2          "/entrypoint.sh"         api                 4 seconds ago       Up 2 seconds        80/tcp, 5001/tcp
docker-db-1         postgres:15-alpine                 "docker-entrypoint.s…"   db                  4 seconds ago       Up 2 seconds        0.0.0.0:5432->5432/tcp
docker-nginx-1      nginx:latest                       "/docker-entrypoint.…"   nginx               4 seconds ago       Up 2 seconds        0.0.0.0:80->80/tcp
docker-redis-1      redis:6-alpine                     "docker-entrypoint.s…"   redis               4 seconds ago       Up 3 seconds        6379/tcp
docker-weaviate-1   semitechnologies/weaviate:1.18.4   "/bin/weaviate --hos…"   weaviate            4 seconds ago       Up 3 seconds        
docker-web-1        langgenius/dify-web:0.3.2          "/entrypoint.sh"         web                 4 seconds ago       Up 3 seconds        80/tcp, 3000/tcp
docker-worker-1     langgenius/dify-api:0.3.2          "/entrypoint.sh"         worker              4 seconds ago       Up 2 seconds        80/tcp, 5001/tcp

如果有防火墙需要放行 80、5432 端口。
下面在浏览器访问 http://部署服务ip ,即可进入到 dify ,刚开始需要设置邮箱、用户名密码信息:

设置完成并登录后即可来到主页面:

构建私有化知识库问答应用

构建本地知识库

现在我们定义下课程信息,将内容放入一个 txt 文本中:
周一课程:上午:JAVA,下午:Python。周二课程:上午:机器学习,下午:机器视觉。周三课程:上午:NLP,下午:HTML。周四课程:上午:微服务,下午:大数据。周五课程:上午:android,下午:历史文化。
下面点到数据集下,点击创建数据集:

下面将上面的 txt 文本拖入或选中进来:

下面进行文本的分段与清洗,由于内容不多,可以分到一个段中:

下面点击保存就成功创建了一个知识库:

构建问答应用

下面构建一个问答的应用:

由于是使用 ChatGPT 下面先给它指定一个 API key:

对于 ChatGPT 的版本,这里以 gpt-3.5-turbo 为例:

下面在 提示词编排 中使用上面的知识库:

此时可以在右侧进行调试:

我们已经成功实现了我们希望看到的效果,如果您感觉满意,请不要忘记点击右上角的“发布”按钮。接下来,我们将介绍如何通过API来使用这个功能。访问API时,您可以看到API接口地址,同时也会给出访问示例,方便您更好地理解和使用。

访问前需要生成 API 秘钥,可以点击 API 秘钥 生成:

下面我们就可以使用 PostMan 进行访问了。

效果测试

这里使用自带的预览:

下面就可以进行一些针对性的问答了:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/241106.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring WebSocket实现实时通信的详细教程

简介 WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。 我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的&#x…

Jupyter Notebook

2017年左右在大学里都听说过Jupyter Notebook,并且也安装用了一段时间,后来不知道什么原因没有用了。估计是那时候写代码的时候多一些,因为它可以直接写代码并运行结果,现在不怎么写代码了。 介绍 后缀名为.ipynb的json格式文件…

WAF攻防相关知识点总结2-代码免杀绕过

WAF的检测除了有对于非正常的流量检测外还对于非正常的数据包特征进行检测 以宝塔为例 在宝塔的后台可以放置一句话木马的文件 宝塔不会对于这个文件进行拦截,但是一旦我们使用菜刀蚁剑等webshell工具去进行连接的时候,数据报中有流量特征就会被拦截 …

JS封装本地缓存的设置,读取,移除,清空方法及使用示例

我封装了一个JS通用的缓存管理对象,可以提供缓存的设置,读取,移除,清空操作,使用也很方便,封装方法的代码在最下方。 Q: 为什么不直接用原生的缓存方法,要封装? A1:原生的缓存管理…

【51单片机】数码管的静态与动态显示(含消影)

数码管在现实生活里是非常常见的设备,例如 这些数字的显示都是数码管的应用。 目录 静态数码管:器件介绍:数码管的使用:译码器的使用:缓冲器: 实现原理:完整代码: 动态数码管&#…

Docker 安装 MySQ

Docker 安装 MySQL MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。 1、查看可用的 MySQL 版本 访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tabtags 。 可以通过 Sort b…

写点东西《什么是网络抓取?》

写点东西《什么是网络抓取?》 什么是网络抓取? 网络抓取合法吗? 什么是网络爬虫,它是如何工作的? 网络爬虫示例 网络抓取工具 结论 您是否曾经想同时比较多个网站上同一件商品的价格?或者自动提取您最喜欢的…

生成式对抗网络GAN

Generative Adversarial Nets由伊恩古德费洛(Ian J.Goodfellow)等人于2014年发表在Conference on Neural Information Processing Systems (NeurIPS)上。NeurIPS是机器学习和计算神经科学领域的顶级国际学术会议之一。 1. GAN在哪些领域大放异彩 图像生…

Rust之旅 - Rust概念、Windows安装、环境配置

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…

手动添加测试用例配置输入参数和期望值

1.选中函数,点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于,这里插入测试用例是手动配置的,之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后,点击测试用例&…

克魔助手工具详解、数据包抓取分析、使用教程

目录 摘要 引言 克魔助手界面 克魔助手查看数据捕获列表 数据包解析窗口 数据包数据窗口 克魔助手过滤器表达式的规则 抓包过滤器实例 总结 参考资料 摘要 本文介绍了克魔助手工具的界面和功能,包括数据包的捕获和分析,以及抓包过滤器的使用方…

电梯节能落座-智慧停车场️,电梯不仅可载人也可以载汽车!

电梯不仅可载人也可以载汽车哦! 在北京市丰台区,有这么一个智慧停车场🅿️ ,共298个停车位,全部智能一体化,简直是“豪华” “智能” 的象征。 523能源:小伍,你跑题了... 小伍&am…

MySQL核心SQL

一.结构化查询语言 SQL是结构化查询语言(Structure Query Language),它是关系型数据库的通用语言。 SQL 主要可以划分为以下 3 个类别: DDL(Data Definition Languages)语句 数据定义语言,这…

Discuz论坛网站登录账号操作慢,必须强制刷新才会显示登录怎么办?

飞飞发现在登录服务器大本营账号时,输入账号密码登录后还是显示的登录框,强制刷新后才知道已经登录了,每次都要刷新才能正常显示,非常影响用户体验,于是在网上找了类似的问题故障解决方法,目前问题已经解决…

AWS边缘媒体安全交付方案

企业如何在AWS上的边缘站点,安全的将优质视频内容交付给用户,并且禁止哪些未经过授权的访问?九河云将基于AWS平台提供边缘媒体安全交付解决方案 解决方案详情 在通过 Amazon CloudFront 交付时,免受未经授权的访问。基于添加到交…

多标签节点分类

Multi-Label Node Classification on Graph-Structured Data,TMLR’23 Code 学习笔记 图结构数据的多标签分类 节点表示或嵌入方法 通常会生成查找表,以便将相似的节点嵌入的更近。学习到的表示用作各种下游预测模块的输入特征。 表现突出的方法是基于随机游走(ran…

docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

docker部署项目,/var/lib/docker/overlay2目录满了如何清理? 一、问题二、解决1、查看 /var/lib/docker 目录(1)、containers 目录(2)、volumes 目录(3)、overlay2 目录 2、清理&…

台灯护眼有用吗?分享备考专用的护眼台灯

说到台灯相信大家都不陌生,如今基本是每个家庭都会备上一台。很多家长会买上一台给孩子学习使用,还有些学生党、办公族夜晚学习工作时也会用得上它。但普通的台灯会出现光照范围不够大、光线过度集中、光线均匀度不足、产生眩光等问题,可能会…

基于 IDEA 进行 Maven 依赖管理

一、依赖管理概念 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等…