AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试

目录

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试

一、简单介绍

 二、创建一个聊天应用

三、使用 python 进行 API 接口测试

 附录:

一、Dify 访问 API 接口的一些说明

1、基础 URL

2、鉴权

3、发起对话消息

4、消息反馈(点赞)

5、获取会话列表


一、简单介绍

AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。


本节将介绍如何使用 Dify 平台调用 Ollama 部署的本地模型来创建一个聊天应用。通过 API 的方式发起聊天,可以让前端自由布置所需的聊天形式。这样,聊天应用既可以在 Web 上展示,也可以在应用端通过 API 接入发起聊天对话。

步骤概述

  1. 准备环境:确保你的开发环境中已安装 Python 和必要的库。
  2. 注册 Dify:在 Dify 平台上注册账户并创建项目。
  3. 集成 Ollama 模型:在 Dify 中集成 Ollama 部署的本地模型。
  4. 创建聊天应用:使用 Dify 提供的工具创建聊天应用。
  5. 发起聊天:通过 API 发起聊天对话。

Dify 采用“后端即服务”(Backend as a Service, BaaS)的理念,为 AI 应用开发者提供了强大的支持。这种模式允许开发者通过 API 直接访问后端服务,从而简化了开发流程,并使得开发者能够专注于前端应用的创新和用户体验的优化。

使用 Dify API 的好处

  •     直接集成 LLM 能力:前端应用可以直接且安全地调用大型语言模型(LLM)的能力,无需投入资源开发和维护后端服务,从而节省时间和成本。
  •     可视化应用设计:Dify 提供了一个直观的可视化界面,允许开发者设计和配置应用。一旦设计完成,更改可以即时在所有客户端生效,无需复杂的部署流程。
  •     封装 LLM 供应商能力:Dify 对不同 LLM 供应商的基础能力进行了良好的封装,使得开发者无需深入了解每个供应商的API细节,即可轻松集成和使用。
  •     灵活切换 LLM 供应商:开发者可以随时切换 LLM 供应商,而无需修改前端代码。Dify 提供了集中管理 LLM 密钥的功能,简化了供应商切换过程。
  •     简化模型更换流程:每个大型模型,如 GPT-4、Claude3.5 等,都提供了 API。虽然开发者可以利用这些 API 构建应用,但更换模型可能需要更改代码,增加开发成本。Dify 通过统一的接口抽象,减少了这种成本。
  •     可视化应用运营:在 Dify 的可视化界面中,开发者可以轻松运营应用,包括分析日志、标注数据以及观察用户活跃度,从而更好地理解用户行为并优化应用性能。
  •     持续集成新工具和插件:Dify 持续为应用提供新的工具能力、插件能力和数据集,帮助开发者扩展应用功能,保持应用的竞争力和创新性。

通过这些优势,Dify API 为开发者提供了一个高效、灵活的开发环境,使得构建、部署和管理基于 LLM 的应用变得更加简单和高效。


Ollama 是一个开源的本地大型语言模型(LLM)运行框架,它旨在简化在本地运行大型语言模型的过程。Ollama 提供了一个简洁易用的命令行界面和服务器,让你能够轻松下载、运行和管理各种开源大型语言模型,如 Llama 3、Mistral、Qwen2 等。

 二、创建一个聊天应用

1、运行docker ,登陆 dify ,在工作室创建一个空白应用

2、创建一个工作流编排的聊天助手

3、设置自己部署的合适的大模型LLM,进行聊天

4、在预览中进行,测试一下聊天功能

三、使用 python 进行 API 接口测试

 1、在发布中点击 “访问 API ”

2、进入该聊天应用的 API 界面

3、根据访问要求,需要创建一个 API-Key ,即是 API 秘钥,拷贝一下以备用

4、这里默认已配置好 Python 相关的环境,打开 Pycharm ,创建工程

5、在工程中右键鼠标创建一个脚本

6、编写脚本,测试一下是否可以访问

Get 请求,输入访问网址 ,添加 Headers 授权,Response 200 OK ,访问成功

import json
import requests

# Dify API 的 URL
api_url = "http://localhost/v1"
# 你的 Dify API 密钥
api_key = "your_api_key_here"

# 设置请求头
headers = {
    "Authorization": f"Bearer {api_key}"
}

# 发起 POST 请求
response = r
### 如何扩展 Dify API 功能实现自定义接口 为了扩展 Dify API 的功能并创建自定义接口,通常需要遵循几个核心原则和技术实践。这不仅涉及配置和使用现有的 API 接口,还包括开发新的点和服务来满足特定需求。 #### 使用Cloudflare Workers设置API扩展 通过 Cloudflare Workers 来设置 API 扩展是一种高效的方式,在这种情况下,开发者可以在无服务器环境下编写 JavaScript 或其他支持的语言代码,这些代码会在全球分布的数据中心运行[^2]。这种方式允许快速响应请求,并且可以根据流量自动伸缩资源分配。 对于想要利用此技术栈的人来说,重要的是理解如何在项目中集成 Cloudflare Worker 脚本以及怎样安全地处理来自客户应用程序的身份验证令牌和其他敏感数据。 #### Laravel Service 中调用 Dify API 当涉及到像 PHP 框架这样的后环境时,Laravel 提供了一种优雅的方法来封装对外部服务(如 Dify API)的调用逻辑。具体来说,在控制器或其他业务层组件之前初始化的服务类可以通过构造函数注入依赖项,从而简化了对远程 RESTful Web Services 的访问过程[^3]。 下面是一个简单的例子展示如何在一个名为 `DifyService` 的 service 类内部完成这一操作: ```php <?php namespace App\Services; use Illuminate\Support\Facades\Cache; use GuzzleHttp\Client as HttpClient; class DifyService { protected $client; public function __construct(HttpClient $httpClient){ $this->client = new HttpClient([ 'base_uri' => config('services.dify.base_url'), 'headers' => [ 'Authorization' => 'Bearer '.config('services.dify.api_key') ] ]); } /** * 获取某些信息. */ public function fetchSomeData(){ try{ $response = $this->client->get('/api/v1/some-endpoint'); return json_decode($response->getBody()->getContents(), true); }catch(\Exception $e){ throw new \RuntimeException("Failed to retrieve data from Dify API."); } } } ``` 这段代码展示了如何构建一个 HTTP 客户实例,并将其用于发起 GET 请求给指定路径 `/api/v1/some-endpoint` 。注意这里还包含了错误捕获机制以确保任何异常情况都能被妥善处理。 #### Chainlit 整合与界面定制 Chainlit 是一种工具集,它使得开发者能够轻松地为基于文本交互的应用程序设计美观而实用的人机对话体验。除了基本的消息传递之外,还可以加入更多高级特性比如语音输入/输出、多媒体消息发送接收等[^1]。因此如果计划进一步增强用户体验,则应该考虑采用此类框架来进行前部分的设计工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙魁XAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值