首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

AI入门7:python三种API方式调用本地Ollama+DeepSeek

  • 25-04-25 01:21
  • 4277
  • 11610
blog.csdn.net

回顾 

书接上篇:各种方式搭建了本地知识库:

AI入门:AI模型管家婆ollama的安装和使用-CSDN博客

AI入门2:本地AI部署,用ollama部署deepseek(私有化部署)-CSDN博客

AI入门3:给本地deepseek设置网页访问方式(UI插件Page Assist 安装)_deepseek本地部署网页访问-CSDN博客

  AI入门4:基于Ollama+DeepSeek,用Page Assist搭建本地知识库-CSDN博客 

AI入门5:基于Ollama+DeepSeek,用AnythingLLM搭建本地知识库-CSDN博客

AI入门6:基于Ollama+DeepSeek,用RAGFlow搭建本地知识库_ragflow ports not available-CSDN博客

本节目标

使用vsCode开发环境,用python来调用本地deepseek。是的,我们要进入程序控制大模型了,有点高级感了,娃哈哈~

准备工作

 必做:

1、本地ollama安装,及deepseek部署,参考前面文档:AI入门1、AI入门2

2、vscode环境,安装python,参考之前的文档

【菜鸟飞】用vsCode搭建python运行环境-CSDN博客

 选读文章:

【菜鸟飞】Conda安装部署与vscode的结合使用-CSDN博客

其他选读文档,通过python访问公网模型,就是通过注册tocken访问:

【菜鸟飞】通过vsCode用python访问deepseek-r1等模型-CSDN博客

 vs运行环境设置

1、确认ollama启动,及安装了deepseek等模型,通过浏览器访问ollama地址验证:http://localhost:11434/

​

2、打开vsCode,准备一个全新的环境,我用的是python3.12.9,具体运行环境设置方式,在上面的参考文档里有。

第一种访问方式:OpenAI

‌OpenAI API‌提供了一系列强大的工具和接口,适用于各种自然语言处理、代码生成和图像处理任务。 

用pip方式安装 OpenAI Python 库,命令为:

pip install --upgrade openai

 执行界面如下:

​​

 执行过程如果出错,参考之前文档中的错误处理方式:

 【菜鸟飞】通过vsCode用python访问deepseek-r1等模型-CSDN博客

创建程序文件,代码如下:

  1. from openai import OpenAI
  2. client = OpenAI(
  3. base_url="http://localhost:11434/v1", # Ollama默认API地址
  4. api_key="test" # 必填字段但会被忽略,随便填写即可
  5. )
  6. response = client.chat.completions.create(
  7. model="deepseek-r1:1.5b", # 替换为已下载的模型名称
  8. messages=[
  9. {"role": "system", "content": "你是一个有帮助的助手"},
  10. {"role": "user", "content": "用50字解释量子计算"}
  11. ],
  12. temperature=0.7,
  13. max_tokens=1024
  14. )
  15. print(response.choices[0].message.content)

其中,替换如下信息为你自己的:

base_url:换成你自己ollama的地址,地址后面的“/v1”不能去掉,这是ollama的API地址

model:你自己本地安装的模型,可以在终端通过命令“ollama list ”查看:

messages:是要提问的角色和内容

执行界面如下:

第二种方式:requests

requests 是 Python 中一个简单易用的 HTTP 请求库,用于向网络服务器或 API 发送 HTTP 请求(如 GET、POST、PUT、DELETE 等),并处理响应数据。它简化了与 Web 服务交互的流程,广泛应用于数据爬取、API 调用、自动化测试等场景。

 可见,其实就是用通用的网络访问方式,来访问ollama,返回响应信息,创建程序文件,代码如下:

  1. import requests
  2. # Ollama 服务器的 URL
  3. #url = "http://localhost:11434/v1/chat/completions" #ok
  4. url="http://localhost:11434/api/chat"
  5. '''
  6. 直接访问API端点
  7. (1)模型列表:GET http://localhost:11434/api/tags
  8. (2)生成文本:POST http://localhost:11434/api/generate
  9. (3)对话交互:POST http://localhost:11434/api/chat
  10. (4)拉取模型:POST http://localhost:11434/api/pull
  11. '''
  12. # 设置你的请求头(通常需要设置 Content-Type)
  13. headers = {
  14. "Content-Type": "application/json"
  15. }
  16. # 构建请求体,例如,你想让模型生成一些文本
  17. data = {
  18. "messages": [{'role': 'user', 'content': '你是谁?'}],
  19. "model": "deepseek-r1:1.5b", # 你想要使用的模型,例如 Mistral-7B-Instruct-v0.1
  20. "stream": False,
  21. "temperature": 0.01, # 控制随机性,可选参数
  22. "max_tokens": 256 # 生成的最大 token 数,可选参数
  23. }
  24. # 发送 POST 请求
  25. response = requests.post(url, json=data, headers=headers)
  26. # 检查响应状态码
  27. if response.status_code == 200:
  28. # 解析响应内容
  29. result = response.json()
  30. #print(result)
  31. print("Generated Text:", result.get("message").get("content")) # 打印生成的文本
  32. else:
  33. print("Error:", response.status_code, response.text)

如果提示request找不到,则通过下面命令进行安装

pip install requests

 执行界面:

方式三:ollama API

Ollama 是一个本地化的机器学习框架,专注于模型加载、推理和生成任务。它提供了强大的 API 接口,允许开发者通过 HTTP 请求与模型进行交互,实现文本生成、对话管理等功能。

首先需要安装ollama包,执行下面命令:

pip install ollama

 如果这过程出错,请参考之前发布的文档:

【菜鸟飞】在vsCode中安装python的ollama包出错的问题-CSDN博客

安装好包,创建程序文件,我测试,有两种调用方式,/api/chat 和 /api/generate : 

  • /api/generate

用途: 这个端点主要用于生成单个文本片段。它接收输入并返回基于该输入的模型生成的文本,通常不考虑之前的消息历史或对话上下文。

功能: 它可以用于各种生成任务,如文章创作、代码生成、故事编写等,其中每次请求都是独立的,不依赖于前一次请求的结果。 

  • /api/chat

用途: 这个端点用于支持对话式的交互。它通常需要一个消息列表作为输入,以维护对话的历史和上下文,确保模型能够理解并响应连续的对话。

功能: 它适合于创建聊天机器人、问答系统或任何需要多轮对话的应用场景。通过跟踪对话历史,模型可以提供更加连贯和情境相关的响应。

 总结而言,/api/generate 更适合一次性生成任务,而 /api/chat 更适合需要持续对话和上下文记忆的任务。

generate方式: 

generate方式,代码如下:

  1. import ollama
  2. client = ollama.Client(host='http://localhost:11434')
  3. print('----------')
  4. models = client.list()
  5. print('Available models:', models)
  6. print('----------')
  7. response = client.generate(
  8. model="deepseek-r1:1.5b", # 指定模型名称
  9. prompt='你是谁'
  10. )
  11. print(response['response'])

执行界面:

错误参考:

我通过网络学习,别人的代码是这样,不用指定ollama地址,用默认地址直接访问,但我执行总是报服务器找不到的错误:

    raise ConnectionError(CONNECTION_ERROR_MESSAGE) from None
ConnectionError: Failed to connect to Ollama. Please check that Ollama is downloaded, running and accessible. https://ollama.com/download

检查了ollama的访问环境变量,和防火墙,多没解决,下面界面供参考,大家可以自己试一下:

chat方式:

chat访问,代码如下:

  1. from ollama import Client
  2. client = Client(
  3. host='http://localhost:11434',
  4. headers={'x-some-header': 'some-value'}
  5. )
  6. stream = client.chat(
  7. model='deepseek-r1:1.5b',
  8. messages=[{'role': 'user', 'content': '你是谁?'}],
  9. #stream=False,
  10. stream=True,
  11. )
  12. #print(stream)
  13. '''
  14. print('--------stream=False-----')
  15. print(stream['message']['content'])
  16. print('-------stream=False------')
  17. '''
  18. print('-------stream=true------')
  19. for chunk in stream:
  20. print(chunk['message']['content'], end='', flush=True)
  21. print('-------stream=true------\n')

上面打印是,stream不同方式,对应的不同打印方式,执行界面参考:

错误参考

和上面类似,大家可以测试一下直接用chat取代,client.chat试一下。

其他:

【vs插件】vsCode环境下,调试ollama的工具allama_gui-CSDN博客

参考文档

  • OpenAI参考文档

介绍 | Open API中文文档

  • ollama的AIP参考文档

Ollama 简介 | 菜鸟教程

官方文档:ollama/docs/api.md at main · ollama/ollama · GitHub

国内镜像文档:ollama/docs/api.md at main · ollama/ollama · GitHub

注:本文转载自blog.csdn.net的正经教主的文章"https://blog.csdn.net/2501_90561511/article/details/146257251"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

108
Python
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top