#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.mzph.cn/news/631743.shtml

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

相关文章

MySQL 8.0中引入的选项和变量(五)

以下是在MySQL 8.0中新增的系统变量、状态变量和服务选项: • innodb_scan_directories: 定义在InnoDB恢复过程中扫描的表空间文件的目录。MySQL 8.0.2中添加。 • innodb_segment_reserve_factor: 作为空页保留的表空间文件段页面的百分比。MySQL 8.0.26中添加。 …

c语言出现打印烫烫烫烫烫烫问题

系列文章目录 c语言出现打印烫烫烫烫烫烫问题 c语言出现打印烫烫烫烫烫烫问题 系列文章目录一、报错现象二、原因三、解决方法 一、报错现象 二、原因 字符数组初始化用这种方式初始化 %s是以字符串打印,获取是地址,%s会接受字符串结束标志[‘\0’]之前的…

改善python程序的91建议记录(学习记录)

使用else子句简化循环(异常处理) 案例1 执行sql异常时处理 def save(db, obj):try:# save attr1db.execute(a sql stmt, obj.attr1)# save attr2db.execute(another sql stmt, obj.attr2)except DBError:db.rollback()else:db.commit()案例2 def prin…

阿里云 linux Centos7 安装 Miniconda3 + 创建Python环境

1.下载miniconda (1)法一:可以去下载清华源的miniconda镜像源,选择自己需要的版本,然后上传到Linux服务器上,linux上使用请选择linux版本,如下: (2)法二&…

C //练习 7-8 编写一个程序,以打印一个文件集合,每个文件从新的一页开始打印,并且打印每个文件相应的标题和页数。

C程序设计语言 (第二版) 练习 7-8 练习 7-8 编写一个程序,以打印一个文件集合,每个文件从新的一页开始打印,并且打印每个文件相应的标题和页数。 注意:代码在win32控制台运行,在不同的IDE环境…

日志项目1

文章目录 【C - 基于多设计模式下的同步&异步日志系统】项目介绍 前置技术1. 项目介绍2. 开发环境3. 核心技术4. 环境搭建5. 日志系统介绍5.1 为什么需要日志系统5.2 日志系统技术实现5.2.1 同步写日志5.2.2 异步写日志 6. 前置技术补充6.1 不定参函数6.1.1 不定参宏函数6…

24年地信专业各大院校,考研真题合集

2024年云南师范大学人文地理学考研真题 一、简答题 1. 人文地理学科的任务 2. 文化生态关系的类型与特点人口出生率低的影响因素现代农业的类型与特点 3. 发展中国家工业发展中存在的问题 二、分析题 1. 结合实例说明城市地域结构模型及主要动力 2. 结合实例论述区域协作组织对…

【送酒小程序系统源码】/花店送花系统/蛋糕店系统/奶茶店系统源码

前端uniapp后端thinkphp数据库mysql 多门店外卖餐饮点餐系统预约点餐 匹配附近店铺 堂食 外卖带走 菜品管理. 根据用户的位置匹配附近饭店 点餐后,可以在线等叫号 餐时输入手机号并支付后,可以支持外 支持多规格、备注等快捷功能,以吸多 多门店管理 数据概览 支持微…

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

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

第7章 现代电信业务

文章目录 一、电信业务概述 1.电信业务的定义 1.1 业界给出的定义 (1)电信管理论坛对业务的定义 电信管理论坛(TMF)对电信业务做了如下的定义:电信业务是以电信基础设施为核心,表明网络“能做什么”,属于一定功能的独立元素。电信业务可以单…

How to build a localized sdkman mirror service

How to build a localized sdkman mirror service 概述想法 概述 从官方给出的安装说明,我们可以知道,官方给出的安装脚本是基于脚本https://get.sdkman.io/进行安装的,下面是该脚本的全部内容。 #!/bin/bash # # Copyright 2017 Marco V…

HarmonyOS—构建第一个ArkTS应用(Stage模型)

创建ArkTS工程 构建第一个页面 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。选择Application应用开发,选择模板“Empty Ability”&am…

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

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

Java-NIO 开篇(1)

NIO简介 高性能的Java通信,离不开Java NIO组件,现在主流的技术框架或中间件服务器,都使用了Java NIO组件,譬如Tomcat、 Jetty、 Netty、Redis、RabbitMQ等的网络通信模块。在1.4版本之前, Java IO类库是阻塞式IO&…

SpringCloud Gateway解决CROS跨域问题

目录 一、问题 二、原因 二、解决方法 1、gateway设置允许跨域 2、手动写一个 CorsResponseHeaderFilter 的 GlobalFilter 去修改Response中的头 一、问题 前端代码访问后端代码时候会出现 Access to XMLHttpRequest at http://localhost:8080/user/logout from origin…

从0开始python学习-49.pytest之日志封装和allure封装

目录 日志封装 1. 在pytest.ini中配置日志的格式 2. 生成日志对象--在请求封装中写 3. 把日志写入文件--在请求封装中写 allure封装 1. 在yaml用例中写入需要的模块、接口等内容 2. 在测试用例封装的函数中通过allure.dynamic的方法写入需要的数据 日志封装 1. 在pytest.…

uniapp写微信小程序实现电子签名

写电子签名一定要注意的是一切全部按照手机上的适配来,为啥这么说呢,因为你在微信开发者工具中调试的时候认为是好的,正常的非常nice,当你发布版本的时候你会发现问题出来了。我下边的写法你可以直接用很简单。就是要记住canvas的几个属性和用…

Android Studi安卓读写NDEF智能海报源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.1f60789ey1EsPH <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmln…

【NPL】自然语言处理(Natural Language Processing,NLP)的发展简述

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读文章&#xff01; 此篇是【话题达人】序列文章&#xff0c;这一次的话题是《自然语言处理的发展》 文章将以博主的角度进行讲述&#xff0c;理解和水平有限&#xff0c;不足之处&#xff0c;望指正。 目录 背景发展线路研发关…