我正在尝试使用Azure OpenAI模型,基于GCP中BigQuery表的数据,通过Cloud Functions生成评论。以下是我一直在使用的Python脚本:
from azure_openai import AzureOpenAIdef generate_comment(month, year, country, column_name, current_value, previous_value): prompt_ = ("") client = AzureOpenAI( api_key=os.getenv("AZURE_OPENAI_API_KEY"), ## 也尝试过 api_key="AZURE_OPENAI_API_KEY" api_version="2023-09-15-preview", azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT") ) response = client.completions.create(model="MODEL_NAME", prompt=prompt_, max_tokens=50, temperature=0.35) return response.choices[0].text
我之前尝试过旧版本,但得到了openai.lib._old_api.APIRemovedInV1
错误:
openai.api_type = "azure"openai.api_base = "https://xxx.openai.azure.com/"openai.api_version = "2023-09-15-preview"openai.api_key = "xxx"response = openai.Completion.create(engine="xxx",prompt=prompt_,temperature=0.35)return response['choices'][0]['message']['content']
然而,我遇到了500内部服务器错误,错误信息如下:
ValueError: Must provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable
我已经检查了我的Azure OpenAI配置,并确保API密钥和端点是正确的。请问有人能帮我找出可能导致此错误的原因吗?
回答:
如下所示,它可以正常工作:
import openai# 设置Azure OpenAI配置openai.api_type = "azure"openai.api_base = "https://XXXX.openai.azure.com/"openai.api_key = "XXXX"openai.api_version = "XXXX"def generate_comment():prompt_ = "" messages = [ {"role": "system", "content": "您将根据给定的数据生成评论。"}, {"role": "user", "content": prompt_} ] # 向Azure OpenAI发送完成请求以生成评论 response = openai.ChatCompletion.create( engine="XXXX", # engine = "deployment_name" messages=[ {"role": "system", "content": "您将根据给定的数据生成评论。"}, {"role": "user", "content": prompt_} ], max_tokens=50, temperature=0.35 ) return response['choices'][0]['message']['content']