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

news2024/11/16 15:29:17

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.coloradmin.cn/o/1385581.html

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

相关文章

电商服务类指标分析(2)——售后管理模块指标

段时间做了一个电商服务类项目,与业务一起梳理了部分指标,这些指标便于了解电商服务,现在做一个整理和回顾。 电商服务类指标可以分为五大类,涵盖了服务从售前、履约、售后、用户反馈、监控预警这样一条链路的内容。 本篇文章来聊…

React入门 - 02(工程目录结构解析)

本章内容 目录 1 外层“文件”说明2 各个“文件夹”说明 接着上一节的内容,我们继续这一节的内容–工程目录文件解析。打开上一节已经建好的工程 react-demo,详细的来了解一些里面的文件。 1 外层“文件”说明 .gitignore — 当我们使用 git 的时候,希…

统计学习 复习(知识点+习题)

复习资料:https://github.com/RuijieZhu94/StatisticalLearning_USTC 第一章 线性回归 1. From one to two 最小二乘 课后题 有偏/无偏估计 加权最小二乘 2. Regularization 线性回归(二维情况) 求解有约束优化问题 正则化最小加权二乘…

Web3与环保:区块链如何推动可持续发展

随着气候变化和环境问题日益严峻,社会对可持续发展的需求变得愈发迫切。在这个背景下,Web3技术和区块链崭露头角,成为推动可持续发展的关键力量。本文将深入探讨Web3技术如何与环保理念相结合,引领我们迈向更加可持续的未来。 1. …

Java异常:toString()和getMessage()区别

首先写了两个错误 Controller public class DemoController {RequestMapping("/show1")public String showInfo(){String str null;str.length();return "index";}RequestMapping("/show2")public String showInfo2(){int a 10/0;return &quo…

postman上传文件文件名有黄色图标

问题: 解决方案 步骤一:设置处打开settings 步骤二:打开location,选择文件所在磁盘目录 步骤三:关闭选项框 文件报错问题解决

VS 中调用调试DLL库的方法

前提条件: 1、当前代码是最新的,并且编译成dll的库有程序使用。 2、打开运行dll库的程序。 配置步骤: 1、使用VS打开要调试的dll库项目。 2、点击调试菜单展开调试菜单。 3、点击附加到进程,弹出配置框。 4、在配置框中选…

第十周:CV视觉内容深入(可选)

到这里基本AI需要准备的一些基础内容都已经ready了,我本人是视觉出身,所以还是想走老路子,不花费大量时间去往别的方向走了,所以针对视觉部分的内容我自己会单独拓展补充一些内容,选择性享用即可,欢迎交流&…

使用CLIP和LLM构建多模态RAG系统

在本文中我们将探讨使用开源大型语言多模态模型(Large Language Multi-Modal)构建检索增强生成(RAG)系统。本文的重点是在不依赖LangChain或LLlama index的情况下实现这一目标,这样可以避免更多的框架依赖。 什么是RAG 在人工智能领域,检索增强生成(re…

云端部署与本地部署:哪个最适合您的业务?

云端部署与本地部署:哪个最适合您的业务? 云的广泛采用导致许多供应商将重点从本地解决方案转移到云交付模型,从而引发了一个问题:“哪种方式最适合我的业务?”如果您想知道哪个选项更安全、更方便且更实惠,请探索我们方便的比较…

什么是WhatsApp Business?WhatsApp和WhatsApp Business区别?

什么是WhatsApp Business? WhatsApp Business账号是Meta专为企业设计的WhatsApp账号。不同于消费者层次的应用,WhatsApp Business旨在为企业提供更好的服务支持,方便企业与消费者建立更好的双向沟通渠道。 WhatsApp和WhatsApp Business有什…

CLion、IDEA设置编码为utf-8,防乱码

其实只要是JetBrains的软件都是通用的,下面以IDEA为例 1.设置项目文件编码 2.设置控制台的字符编码

保姆级Arduino开发环境搭建

Arduino,一个易于上手且功能丰富的开源平台,不仅包含了各种型号的Arduino开发板等硬件部分,还囊括了Arduino IDE等软件部分。更重要的是,它还拥有由广大爱好者和专业人员共同搭建和维护的互联网社区和资源,为创客们提供…

C语言经典算法之冒泡排序算法

目录 前言 建议: 简介: 一、代码实现 二、时空复杂度 时间复杂度: 空间复杂度: 总结: 前言 建议: 1.学习算法最重要的是理解算法的每一步,而不是记住算法。 2.建议读者学习算法的时候…

微调您的Embedding模型以最大限度地提高RAG管道中的相关性检索

英文原文地址:https://betterprogramming.pub/fine-tuning-your-embedding-model-to-maximize-relevance-retrieval-in-rag-pipeline-2ea3fa231149 微调您的Embedding模型以最大限度地提高RAG管道中的相关性检索 微调嵌入前后的 NVIDIA SEC 10-K 文件分析 2023 年…

C#灵活控制多线程的状态(开始暂停继续取消)

ManualResetEvent类 ManualResetEvent是一个同步基元,用于在多线程环境中协调线程的执行。它提供了两种状态:终止状态和非终止状态。 在终止状态下,ManualResetEvent允许线程继续执行。而在非终止状态下,ManualResetEvent会阻塞线…

智能助手的巅峰对决:ChatGPT对阵文心一言

在人工智能的世界里,ChatGPT与文心一言都是备受瞩目的明星产品。它们凭借先进的技术和强大的性能,吸引了大量用户的关注。但究竟哪一个在智能回复、语言准确性、知识库丰富度等方面更胜一筹呢?下面就让我们一探究竟。 首先来谈谈智能回复能力…

SwiftUI之深入解析高级布局的实战教程

一、自定义动画 首先实现一个圆形布局的视图容器 WheelLayout: struct ContentView: View {let colors: [Color] [.yellow, .orange, .red, .pink, .purple, .blue, .cyan, .green]var body: some View {WheelLayout(radius: 130.0, rotation: .zero) {ForEach(0.…

强化学习应用(三):基于Q-learning的物流配送路径规划研究(提供Python代码)

一、Q-learning算法简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是使用一个Q值函数来估计每…

纳米量级晶圆表面微观检测技术

持续更新 背景:晶圆表面形状偏差分为:宏观几何误差,中间几何误差,微观几何误差,跟别用表面形状误差,表面波纹度,表面粗度来描述。 主要技术:微分剪切干涩显微技术,五步…