透過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會顯著提升