关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集

目录

  • Dify 的介绍

  • Dify 的安装部署

  • Chatbot 聊天助手应用构建

  • Generation 文本生成式应用

  • Agent 智能体应用构建

  • Workflow 工作流应用构建

图片

Dify 介绍

Dify

Dify 是一个开源 LLM 应用程序开发平台。 Dify 的直观界面结合了 AI 工作流程、RAG 管道、代理功能、模型管理、可观察性功能等,让您快速从原型转向生产。

图片

 

Dify 的特点

Dify 是一个开源大语言模型 (LLM) 应用程序开发平台。它结合了后端即服务和 LLMOps 的概念,使开发人员能够快速构建生产级的生成式 AI 应用程序。即使非技术人员也可以参与人工智能应用的定义和数据操作。 

通过集成构建 LLM 应用所需的关键技术栈,包括对数百种模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎和灵活的 Agent 框架,同时提供一组易于使用的接口和 API ,Dify 为开发人员节省了大量重新发明轮子的时间,让他们能够专注于创新和业务需求。

为什么需要 Dify

你可以把像 LangChain 这样的库想象成一个带有锤子、钉子等的工具箱。相比之下,Dify 提供了一个更适合生产的、完整的解决方案——把 Dify 想象成一个具有精细工程设计和软件测试的脚手架系统。 

重要的是,Dify 是开源的,由专业的全职团队和社区共同创建。您可以基于任何模型自行部署类似于 Assistants API 和 GPT 的功能,以灵活的安全性保持对数据的完全控制,所有这些都在易于使用的界面上进行。

Dify 的价值

  • 适合初创 - 快速将您的人工智能想法变为现实,加速成功和失败。在现实世界中,已有数十个团队建立了 MVP,以通过 Dify 获得资金或赢得客户订单。

  • 将 LLM 整合到现有业务中 - 通过引入 LLM 来增强当前应用程序的功能。访问 Dify 的 RESTful API 将提示与业务逻辑解耦。使用 Dify 的管理界面跟踪数据、成本和使用情况,同时不断提高性能。

  • 企业 LLM 基础设施 - 一些银行和互联网公司正在部署 Dify 作为内部 LLM 网关,加速 GenAI 技术的采用,同时实现集中治理。

  • 探索 LLM 功能 - 即使作为技术爱好者,您也可以通过 Dify 轻松练习提示工程和代理技术。

项目技术架构介绍

图片

 

Dify 基本使用流程

安装

#下载
git clone https://github.com/langgenius/dify.git
cd dify/docker
#基本配置
cp .env.example .env
#启动
docker compose up -d

#查看容器
docker compose ps
#查看日志
docker compose logs

dify 探索界面

图片

 

工作室

图片

 

知识库

图片

 

图片

 

工具列表

图片

 

用户管理

图片

 

模型提供者配置

  • 商业模型 OpenAI、Hugging Face 等国外大模型服务

  • 支持国内大模型服务阿里通义千问、百度文心一言、百川、腾讯混元

  • 本地模型 Ollama OpenLLM ChatGLM 等

模型供应配置

图片

 

OpenAI 模型配置

图片

 

Ollama 本地模型服务配置

图片

 

系统模型配置

  • 推理模型 System Inference Models:用于生成式任务的 LLM。

  • 嵌入模型 Embedding Models:用于将文档分段嵌入计算。

  • 重新排序模型 Rerank Models:增强 LLM 的搜索能力。

  • 语音到文本模型 Speech-to-Text Models:在对话应用程序中将语音转换为文本。

图片

 

构建大模型应用

图片

 

聊天机器人应用构建

聊天机器人应用配置

图片

 

模型参数配置

图片

 

模型对比调试

图片

 

提示词设置

图片

 

带有变量的提示词

图片

 

上下文

  • 需要提前在知识库中引入

  • 嵌入向量搜索

  • 匹配内容作为上下文发给 LLM

图片

 

召回与 Rerank 设置

  • 多路召回

    • 语义与关键词匹配

    • topk 分段数量

    • rerank 重新排序模型

图片

 

功能增强

图片

 

聊天助手界面

图片

图片

文本生成式应用构建

文本生成式应用构建界面

图片

 

文本生成式默认变量为段落

图片

 

文本生成式应用运行效果

图片

智能体 Agent 构建

智能体 Agent

Nvidia: 代理是一个具有复杂推理能力、记忆和执行任务手段的系统。 

langchain: 代理的核心思想是使用语言模型来选择要采取的一系列操作。在代理中,语言模型被用作推理引擎来确定要采取哪些操作以及按什么顺序 

百度 智能体(Agent)是人工智能领域中的一个核心概念。它能够在其所处的环境中自主地感知信息,并根据这些信息做出决策,以实现特定的目标或任务。

图片

 

agent 应用配置

图片

 

搜索工具调用

图片

 

代码解释器工具

  • python

  • javascript

图片

 

文生图工具调用

图片

 

更多工具

  • 内置工具

  • 自定义工具

  • 工作流工具

图片

 

自定义工具

  • 外部工具暴露 http api

  • 通过 swagger 规范描述 api

  • 把 api 导入到 dify

图片

 

扩展工具

图片

 

图片

 

扩展开发示例

from fastapi import FastAPI, Body, HTTPException, Header
from pydantic import BaseModel

app = FastAPI()


class InputData(BaseModel):
    point: str
    params: dict = {}


@app.post("/api/dify/receive")
async def dify_receive(data: InputData = Body(...), authorization: str = Header(None)):
    """
    Receive API query data from Dify.
    """
    expected_api_key = "123456"# TODO Your API key of this API
    auth_scheme, _, api_key = authorization.partition(' ')

    if auth_scheme.lower() != "bearer" or api_key != expected_api_key:
        raise HTTPException(status_code=401, detail="Unauthorized")

    point = data.point

    # for debug
    print(f"point: {point}")

    if point == "ping":
        return {
            "result": "pong"
        }
    if point == "app.external_data_tool.query":
        return handle_app_external_data_tool_query(params=data.params)
    # elif point == "{point name}":
        # TODO other point implementation here

    raise HTTPException(status_code=400, detail="Not implemented")


def handle_app_external_data_tool_query(params: dict):
    app_id = params.get("app_id")
    tool_variable = params.get("tool_variable")
    inputs = params.get("inputs")
    query = params.get("query")

    # for debug
    print(f"app_id: {app_id}")
    print(f"tool_variable: {tool_variable}")
    print(f"inputs: {inputs}")
    print(f"query: {query}")

    # TODO your external data tool query implementation here,
    #  return must be a dict with key "result", and the value is the query result
    if inputs.get("location") == "London":
        return {
            "result": "City: London\nTemperature: 10°C\nRealFeel®: 8°C\nAir Quality: Poor\nWind Direction: ENE\nWind "
                      "Speed: 8 km/h\nWind Gusts: 14 km/h\nPrecipitation: Light rain"
        }
    else:
        return {"result": "Unknown city"}

工作流编排

工作流程

面向自动化和批处理场景,适用于高质量翻译、数据分析、内容生成、电子邮件自动化等。

图片

 

工具

  • 内置工具清单

  • 支持第三方工具集成

工作流逻辑

图片

 

循环迭代

图片

图片

工作流可以发布为工具

将复杂的工作流发布为工具,可以为其他的 agent 提供服务

图片

 

图片

 

工作流运行

图片

 

总结

  • Dify 是一个非常强大的开源平台

  • 可以帮助个人和企业快速构建 AI 应用,实现 AI 快速落地

  • 可以灵活扩展,支持企业定制扩展能力,实现垂直领域内的流程编排

图片

关于霍格沃兹测试开发学社

霍格沃兹测试开发学社,隶属于 测吧(北京)科技有限公司,是一个面向软件测试爱好者的技术交流社区,聚焦软件测试、软件测试入门、自动化测试、性能测试、接口测试、测试开发、全栈测试,以及人工智能测试(AI 测试)等方向。

学社内容覆盖 Python 自动化测试、Java 自动化测试、Web 自动化SeleniumPlaywright、App 自动化(Appium)、JMeter、LoadRunner、Jenkins 等测试技术与工具,同时关注 AI 在测试设计、用例生成、自动化执行、质量分析与测试平台建设中的应用,以及开源测试相关实践。

在人才培养方面,学社建设并运营高校测试实训平台,组织 “火焰杯” 软件测试相关技术赛事,探索面向高校学员的实践型培养模式,包括先学习、就业后付款等能力导向路径。

此外,学社还提供面向测试工程师的能力提升支持,包括名企大厂 1v1 私教服务,用于结合个人背景的定向指导与工程能力提升。


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐