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