通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型

通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型

起因是收到了ollama的邮件,貌似支持使用openai来调用本地的ollama下载的模型为自己用
image

想了下正好试下,因为这几天正好在尝试用Jupyter Notebook来写点调用api的方式来使用大语言模型,看看后面能不能自己做点有意思的操作,openai的api key懒得搞,整点阿里云的免费的token先用用还是可以的

刚好使用阿里的OpenAI Chat接口兼容实例代码

要先做好的部分

打开ollama

直接cmd输入ollama serve,一般是没问题的

安装好openai包

在你要是用的环境下执行pip install -U openai

我这里用的是1.36.1

image

确认没有问题以后,我们就使用多轮对话的部分,下面就是阿里云的实例代码

from openai import OpenAI
import osdef get_response(messages):client = OpenAI(# 如果您没有配置环境变量,请在此处用您的API Key进行替换api_key=os.getenv("DASHSCOPE_API_KEY"), # 填写DashScope服务的base_urlbase_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 completionmessages = [{'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 osdef get_response(messages):client = OpenAI(# 如果您没有配置环境变量,请在此处用您的API Key进行替换api_key='ollama',# 填写DashScope服务的base_urlbase_url="http://localhost:11434/v1",)completion = client.chat.completions.create(model="qwen:14b",messages=messages,temperature=0.8,top_p=0.8)return completionmessages = [{'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,没办法,电脑配置不好

image

然后就可以对话着玩了

image

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

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772251.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后门函数技术在二进制对抗中的应用

本次题目跟第七届HWS线下的re2有类似的地方,均有后门函数。二进制后门可以理解为:我们只需要修改某个字节或某个函数,就可以将加密的过程变成解密的过程,大大节省逆向成本。本题先对内置的dll进行解密,然后调用其加密函数对我们的txt进行加密,如果我们将加密的函数nop为解…

基于kalman滤波的UAV三维轨迹跟踪算法matlab仿真

1.程序功能描述使用卡尔曼滤波对UAV在三维空间场景中的运动轨迹进行预测和估计,最后输出预测轨迹,估计轨迹以及三维空间轨迹估计结果。2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序for k=1:length(X_direct)-1%第一个估计 Xk_ = [X_direct(k);Vx_direct…

裴蜀定理学习记录

1477A - Nezzar and Board 观察到2x-y可以拆成x+(x-y),现在模拟一下这个过程发现得到的数可以看成从某个点xj出发,加上若干个两数之间的差的形式。 再考虑一下2x-y的几何意义,发现相当于在数轴上做x关于y的对称点,并且和数的分布位置有关,和具体数值是无关的 接下来有一个…

基于模糊PID的直流电机控制系统simulink建模与仿真

1.课题概述PID控制器和模糊PID控制器通过Simulink建模实现,在matlab中编程实现模糊控制规则,PID控制器参数计算。运行simulink模型之后,将2个控制器的控制响应曲线进行对比得到仿真结果。2.系统仿真结果 将PID控制器的控制响应曲线和模糊PID控制响应曲线放一起对比,结果如下…

公钥私钥gitee都不行,新手小白破局(windows凭据)

公钥私钥gitee都不行,新手小白破局(windows凭据) 创建时间:2024-07-26 一、问题复现 gitee项目创建后,由于之前的 账号密码错乱,导致提交不了,不能克隆下来,不能提交,如下: 1.1 初始的一个项目1.2 克隆出现问题二、删除公钥私钥 2.1 本机之前生成的密钥文件 一般在这…

【活动预告】Easysearch 结合大模型实现 RAG

2024 搜索客社区 Meetup 首期线上活动正式启动,本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,诚邀广大搜索技术开发者和爱好者参加交流学习。 活动时间:2024 年 7 月 31 日 19:30-20:30 (周三) 活动形式:微信视频号(极限实验室)直播 报名方式:关注或扫码海…

反射、特性

1.反射的例子:

SQL数据库表 多对多关系设计--省去链表的尝试

概述 之前遇到一个MES需求,需要创建一个基础资料表 "人员信息表" ,用于其它业务的人员信息关连,因为这些人员并非系统登录帐号,所以单独进行维护。人员表涉及到字段包括:ID,工号,姓名,所属工序,所属职称,所属车间。其中,所属工序、所属职称、所属车间 为…

Asp .Net Core 系列:详解授权以及实现角色、策略、自定义三种授权和自定义响应

什么是授权(Authorization)? 在 ASP.NET Core 中,授权(Authorization)是控制对应用资源的访问的过程。它决定了哪些用户或用户组可以访问特定的资源或执行特定的操作。授权通常与身份验证(Authentication)一起使用,身份验证是验证用户身份的过程,授权与身份验证相互独…

CTF-内存取证题目

一:使用volatility2版本 1、分析镜像 python2 vol.py -f /home/kali/桌面/worldskills3.vmem imageinfo 2、从内存中获取到用户admin的密码并且破解密码,以flag{admin,password}形式提交(密码为6位) (1)查看系统用户 python2 vol.py -f /home/kali/桌面/worldskills3.vme…

后端说,单页面SPA和前端路由是怎么回事

没有请求的路由 在传统开发中,浏览器点击一个超链接,就会像后端web服务器发送一个html文档请求,然后页面刷新。但开始单页面开发后,就完全不同了。 单页面?这个概念难以理解。我用一个js作为整个web应用,然后再这个js中操作dom变化,以此来实现页面变化。这不叫单页面吗?…

nginx批量封禁黑名单ip

nginx批量封禁黑名单ip昨天搞到差不多1点,今天又是忙到6点半,连我领导都说“搞得我们加一好憔悴呀”。有很长一段时间没更新博客了,想着怎么做个人IP。。。谋出路一、需求介绍废话少说,需求就是怎么批量封禁别人给来的一大堆黑名单ip。甲方每天不定期发来几百、上千个ip,我…