我面临一个问题,我需要将微控制器与 Whisper 一起使用,但由于微控制器运行缓慢,我希望使用 API 而不是本地模型。不幸的是,我目前使用的 SDK 仅支持通过套接字进行通信。你能提出解决这个问题的方法吗?
## Socket version ############################################################
import requests
import json
import os
import base64
#### API key
with open('OPENAI_API_KEY', 'rb') as f:
OPENAI_API_KEY = json.load(f)['key'][0]
# API URL
url = "https://api.openai.com//v1/audio/translations"
# Proxy
proxy = os.environ.get("HTTPS_PROXY")
# Audio file
with open("sample.mp3", "rb") as f:
audio = f.read()
audio_base64 = base64.b64encode(audio).decode("utf-8")
# Request
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {OPENAI_API_KEY}"
}
data = {
"model": "whisper-1",
"audio": audio_base64,
"type": "transcription",
}
response = requests.post(
url = url,
headers=headers,
json=data,
proxies={'https': proxy}
)
# Output the result
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
{
"error": {
"message": "1 validation error for Request\nbody -> file\n field required (type=value_error.missing)",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
我已经成功地使用 GPT-3.5 测试了 API,但是当我尝试将它与 Whisper 一起使用时,它不起作用。
import requests
import json
import os
# API Key
with open('OPENAI_API_KEY', 'rb') as f:
OPENAI_API_KEY = json.load(f)['key'][0]
# API URL
url = "https://api.openai.com/v1/chat/completions"
# Proxy
proxy = os.environ.get("HTTPS_PROXY")
# Request
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {OPENAI_API_KEY}'
}
data = {
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "Say this is a test!"},
],
"temperature": 0.7
}
response = requests.post(
url=url,
headers=headers,
json=data,
proxies={'https': proxy}
)
# Output the result
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
~~~
"choices": [
{
"message": {
"role": "assistant",
"content": "This is a test!"
},
"finish_reason": "stop",
"index": 0
}
]
~~~