
FastOpenAPI:Python框架API文檔自動化生成工具,解放你的雙手!
az cognitiveservices account create \
--name my-openai-resource \
--resource-group my-resource-group \
--kind OpenAI \
--sku S0 \
--location eastus2 \
--yes
在Azure門戶導航至創建的OpenAI資源
pip install python-dotenv openai
創建.env文件:
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_KEY=your-api-key
AZURE_OPENAI_DEPLOYMENT=your-deployment-name
import os
from dotenv import load_dotenv
from openai import AzureOpenAI
load_dotenv()
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_KEY"),
api_version="2024-02-01",
azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT")
)
response = client.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
prompt="人工智能將改變",
temperature=0.7,
max_tokens=100
)
print(response.choices[0].text)
參數說明表:
參數 | 類型 | 說明 | 推薦值 |
---|---|---|---|
temperature | float | 生成隨機性 | 0.5-1.0 |
max_tokens | int | 最大輸出長度 | 根據需求調整 |
top_p | float | 核采樣閾值 | 0.9-1.0 |
frequency_penalty | float | 重復懲罰系數 | 0.0-2.0 |
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=[
{"role": "system", "content": "你是一位資深技術專家"},
{"role": "user", "content": "請用通俗語言解釋量子計算"}
],
temperature=0.5
)
print(response.choices[0].message.content)
消息角色說明:
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=[{"role": "user", "content": "講述一個科技創業故事"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "獲取當前天氣",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
}
]
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=[{"role": "user", "content": "北京現在天氣如何?"}],
tools=tools
)
print(response.choices[0].message.tool_calls)
# 啟用內容過濾
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=[...],
filter_params={
"hate": "block",
"self_harm": "alert"
}
)
az monitor metrics list \
--resource my-openai-resource \
--metric "TotalTokens"
def generate_response(query):
history = load_chat_history()
messages = [
{"role": "system", "content": "你是一個專業的客服助理"},
*history,
{"role": "user", "content": query}
]
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=messages,
temperature=0.3
)
return response.choices[0].message.content
def summarize_document(text):
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=[{
"role": "user",
"content": f"請用三點總結以下文檔內容:\n{text}"
}],
temperature=0.1
)
return response.choices[0].message.content
def generate_python_code(requirement):
messages = [
{"role": "system", "content": "你是一個專業的Python開發助手"},
{"role": "user", "content": f"請生成滿足以下需求的Python代碼:{requirement}"}
]
response = client.chat.completions.create(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT"),
messages=messages,
temperature=0.2
)
return extract_code(response.choices[0].message.content)
from tenacity import retry, wait_exponential
@retry(wait=wait_exponential(multiplier=1, max=10))
def safe_api_call():
return client.chat.completions.create(...)
通過本教程,您已經掌握了Azure OpenAI API的核心使用方法和最佳實踐。建議從以下方向深入探索:
Azure OpenAI正在持續更新模型版本和功能特性,建議定期查閱官方文檔獲取最新信息。期待您利用這項強大的技術創造出改變世界的應用!