通过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会显著提升

相关推荐
运器12313 分钟前
【一起来学AI大模型】PyTorch DataLoader 实战指南
大数据·人工智能·pytorch·python·深度学习·ai·ai编程
音元系统16 分钟前
Copilot 在 VS Code 中的免费替代方案
python·github·copilot
超龄超能程序猿28 分钟前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
cooldream20092 小时前
Python 包管理新时代:深入了解 `uv` 的使用与实践
python·uv·包管理器
之歆2 小时前
Python-魔术方法-创建、初始化与销毁-hash-bool-可视化-运算符重载-容器和大小-可调用对象-上下文管理-反射-描述器-二分-学习笔记
笔记·python·学习
胖达不服输3 小时前
「日拱一码」025 机器学习——评价指标
人工智能·python·机器学习·评价指标
brave_zhao4 小时前
JavaBeanUtils javaBean转map, 实体类转map,实体集合转List<Map>
linux·windows·python
apihz5 小时前
通用图片搜索-搜狗源免费API接口使用指南
android·java·python·php·音视频
爱吃面条的猿5 小时前
pycharm中自动补全方法返回变量
ide·python·pycharm
倔强青铜三5 小时前
苦练Python第15天:Lambda函数——Python的匿名一行杀器
人工智能·python·面试