20231118 by elderman
Datawhale 动手学大模型应用开发Task02
这一章介绍了ChatGPT,百度文心大模型,讯飞星火大模型,智谱GLM的api调用方法于代码,也更进一步地介绍了langchain,还介绍了一个集成众多大模型api的项目FastAPI(我昨天还在看同类型项目one-api【苦笑】)
# 在这里补充一个azure openai 的模型部署与调用方法。
前提:一个已经有了azure openai资源组的微软azure账号。
Azure 官网 Cloud Computing Services | Microsoft Azure
账号登录后页面
从Resources中选择一个Azure OpenAI图标的资源组,进入。(若没有,你需要新建。这篇文章不谈)
### 1获取终结点(Endpoint)网址和api key
选择左侧Resources Management下【Keys and Endpoint】以获取。
Endpoint:你的调用请求的接受地址。
Key:调用密钥 (不是chatgpt的sk- .....)
之后的调用代码都会用到。
Keys and Endpoint
### 2在azure上部署你的模型
选择【Model deployments】
点击按钮【Manage Deployment】
在左侧【Model/模型】处可查看你可以部署的模型一览
选择左侧【Deploy/部署】- 创建新的部署/create new deployment
在下拉栏中选择可用模型,模型版本选择auto,然后自己取部署名,作为之后调用时的唯一标识。
一个模型,仅允许一次部署。
部署详情
完成后就ok啦,也可以在高级选项中选限制每分钟调用次数。
### 3 本地代码调用(openai python库)
必须先部署好模型,才能调用。
Azure openai在本地没有开科学上网的条件下,也能调用并得到回复
上代码
import openai
import os
openai.api_type = "azure"
openai.api_base = "https://xxxxxxxxx.openai.azure.com" # 官网中的终结点,自行替换
# 这个程序所发送的调用请求,会发到终结点进行处理
openai.api_version = "2023-05-15" #必须是2023-05-15(这点来自其他文章,原理不明)
openai.api_key = "6d7ta7i6d7gdwi9wh32uihhf9h8fh2709" # 官网的key,我乱敲得
deploy_name = "你自己取的部署名"
def get_completion(prompt, model="gpt-3.5-turbo",system_prompt=""):
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": prompt},
]
response = openai.ChatCompletion.create(
engine = deploy_name, # 这是和常规chatgpt api调用不同的地方。
# 无论参数model是什么,只认deploy_name对应的模型
model=model,
messages=messages,
temperature=0, # this is the degree of randomness of the model's output
)
return response.choices[0].message["content"]
然后就结束啦,可喜可贺