通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型
通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型
起因是收到了ollama的邮件,貌似支持使用openai来调用本地的ollama下载的模型为自己用

想了下正好试下,因为这几天正好在尝试用Jupyter Notebook来写点调用api的方式来使用大语言模型,看看后面能不能自己做点有意思的操作,openai的api key懒得搞,整点阿里云的免费的token先用用还是可以的
刚好使用阿里的OpenAI Chat接口兼容实例代码
要先做好的部分
打开ollama
直接cmd输入ollama serve,一般是没问题的
安装好openai包
在你要是用的环境下执行pip install -U openai
我这里用的是1.36.1

确认没有问题以后,我们就使用多轮对话的部分,下面就是阿里云的实例代码
from openai import OpenAI
import os
def get_response(messages):
client = OpenAI(
# 如果您没有配置环境变量,请在此处用您的API Key进行替换
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 填写DashScope服务的base_url
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-turbo",
messages=messages,
temperature=0.8,
top_p=0.8
)
return completion
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'}]
# 您可以自定义设置对话轮数,当前为3
for i in range(3):
user_input = input("请输入:")
# 将用户问题信息添加到messages列表中
messages.append({'role': 'user', 'content': user_input})
assistant_output = get_response(messages).choices[0].message.content
# 将大模型的回复信息添加到messages列表中
messages.append({'role': 'assistant', 'content': assistant_output})
print(f'用户输入:{user_input}')
print(f'模型输出:{assistant_output}')
print('\n')
正常来说DASHSCOPE_API_KEY就是用阿里云的api key,我们按照邮件里面的说法,对其中的一些参数进行修改
修改后的
from openai import OpenAI
import os
def get_response(messages):
client = OpenAI(
# 如果您没有配置环境变量,请在此处用您的API Key进行替换
api_key='ollama',
# 填写DashScope服务的base_url
base_url="http://localhost:11434/v1",
)
completion = client.chat.completions.create(
model="qwen:14b",
messages=messages,
temperature=0.8,
top_p=0.8
)
return completion
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'}]
# 您可以自定义设置对话轮数,当前为3
for i in range(3):
user_input = input("请输入:")
# 将用户问题信息添加到messages列表中
messages.append({'role': 'user', 'content': user_input})
assistant_output = get_response(messages).choices[0].message.content
# 将大模型的回复信息添加到messages列表中
messages.append({'role': 'assistant', 'content': assistant_output})
print(f'用户输入:{user_input}')
print(f'模型输出:{assistant_output}')
print('\n')
主要就是换这三个地方,api_key改成ollama,base_url改成本地的ollama端口我这里是http://localhost:11434/v1,model改成你的模型名,这里我用的是qwen:14b,没办法,电脑配置不好

然后就可以对话着玩了

如果调用成功了的话在cmd上会有输出输入,而且任务管理器的GPU会显著提升

通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型的更多相关文章
- [python之ipython] jupyter notebook在云端服务器上开启,本地访问
本地ssh到云端: ssh username@xxx.xxx.xxx.xxx -L127.0.0.1:7777:127.0.0.1:8888 把云端的8888端口映射到本地的7777端口 云端运行指令 ...
- Keras学习笔记二:保存本地模型和调用本地模型
使用深度学习模型时当然希望可以保存下训练好的模型,需要的时候直接调用,不再重新训练 一.保存模型到本地 以mnist数据集下的AutoEncoder 去噪为例.添加: file_path=" ...
- 初学者需要IPython 与 Jupyter Notebook 吗?
ipython 是 jupyter notebook的前身并拥有ipython的全部功能 jupyter拥有 cell, markdown 整合的功能, 能同时运行代码, 而且是多组的 ...
- Jupyter Notebook环境安装
Jupyter Notebook环境安装 一.什么是jupyter Notebook 1.简介 Jupyter Notebook 是基于网页的用于交互计算机的应用程序器可被应用程序. 能让用户将说明文 ...
- 云原生的弹性 AI 训练系列之三:借助弹性伸缩的 Jupyter Notebook,大幅提高 GPU 利用率
Jupyter Notebooks 在 Kubernetes 上部署往往需要绑定一张 GPU,而大多数时候 GPU 并没有被使用,因此利用率低下.为了解决这一问题,我们开源了 elastic-jupy ...
- 远程访问jupyter notebook
远程访问Jupyter Notebook Jupyter Notebook很好用,但是直接远程在服务器上用体验当然不如本地计算机好,那么如何远程访问呢? 首先需要在服务器上安装好ipython, ju ...
- Python·Jupyter Notebook各种使用方法
PythonJupyter Notebook各种使用方法记录持续更新 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Ju ...
- Python·Jupyter Notebook各种使用方法记录
标签(空格分隔): Python 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Jupyter 二 更改Jupyter ...
- 全真教程:Windows环境Jupyter Notebook安装、运行和工作文件夹配置
全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 @ 目录 全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 一.Jupyt ...
- charts jupyter notebook 画简单的柱状图
数据库是mongdb 数据是58同城上发的转手记录 一 为了保证数据安全,对需要进行处理的数据进行拷贝. > db.createCollection('test') { } > show ...
随机推荐
- 7款优秀的AI搜索引擎工具推荐
AI搜索引擎不仅能够理解复杂的查询语句,还能够通过学习用户的搜索习惯和偏好,提供更加个性化的搜索结果.本篇文章将介绍7款在这一领域表现出色的AI搜索引擎工具,它们各有特色,但都致力于为用户提供更加智能 ...
- itestwork(爱测试) 一站式接口测试&敏捷测试工作站 9.0.1 发布,ui 及Bug fix
(一)itest 简介 itest work (爱测试) 一站式工作站让测试变得简单.敏捷.itest work 包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1 ...
- 初入JavaScript
js是轻量级 弱类型 脚本语言 html是 超文本 标记语言 脚本语言和标记语言的主要区别 标记语言,可以通过浏览器直接执行 脚本语言,必须要通过编译,浏览器内核的编译,才能正常运行 简单理解,脚本语 ...
- IceRPC之依赖注入>快乐的RPC
作者引言 很高兴啊,我们来到了IceRPC之依赖注入>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界. 依赖注入和IceRPC 了解 IceRPC (C#) 如何为依赖注入 ...
- EF INNER JOIN WHERE ORDER BY
同时使用 join,where,order by. UpdaterDbContext db = new UpdaterDbContext(); // 按 t_server 表的 seq ASC 排序, ...
- .net6 asp.net core mvc 中使用NLog ILogger
1.用VS2022新建一个.NET6 MVC项目. 2.使用nuget引用NLog.Extensions.Logging. 3.项目中新建一个NLog.config配置文件,右键属性设置为" ...
- 燕千云助力ITSM知识沉淀与复用
数字化时代IT服务知识沉淀痛点 随着企业数字化进程的推进,企业需要购入更多的智能化.数字化设备及软件,高效生产的同时,问题也层出不穷.而IT服务管理,可以为企业减少密集型的资源消耗,帮助企业以更高效. ...
- 订单请求接口设计,避免timeout超时问题 下单解决
订单请求接口设计,避免timeout超时问题 下单解决 接上篇:外部系统对接下单幂等性校验逻辑及接口超时处理 https://www.cnblogs.com/oktokeep/p/17668039.h ...
- 用CSS3绘制iPhone手机
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 用CSS3绘制iPhone手机 日期:2017-7-3 阿 ...
- NumPy 差分、最小公倍数、最大公约数、三角函数详解
NumPy 差分 离散差分意味着相邻元素之间的减法. 例如,对于 [1, 2, 3, 4],离散差分将是 [2-1, 3-2, 4-3] = [1, 1, 1] 要找到离散差分,使用 diff() 函 ...