AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试
目录
AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试
一、简单介绍
AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。
本节将介绍如何使用 Dify 平台调用 Ollama 部署的本地模型来创建一个聊天应用。通过 API 的方式发起聊天,可以让前端自由布置所需的聊天形式。这样,聊天应用既可以在 Web 上展示,也可以在应用端通过 API 接入发起聊天对话。
步骤概述
- 准备环境:确保你的开发环境中已安装 Python 和必要的库。
- 注册 Dify:在 Dify 平台上注册账户并创建项目。
- 集成 Ollama 模型:在 Dify 中集成 Ollama 部署的本地模型。
- 创建聊天应用:使用 Dify 提供的工具创建聊天应用。
- 发起聊天:通过 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