-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support base64 encoded image data #11
Conversation
❌ Deploy Preview for enchanting-narwhal-1421fe failed.
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
我试了下,不管是用你部署好的,还是我在docker里自己部署,在线图片url都没问题,但是base64转换的都提示Internal Server Error |
你是如何调用的?下面是一个我的调用的例子
响应是:
|
我直接把你请求的代码复制过来,换我的key,用https://gateway.openai-cloud.com这个你之前提供的接口调用,还是提示失败。。。 |
我刚才没有部署。现在部署好了,你可以再试试 |
终于可以了!不过我vercel自己部署的,一直没成功,打算直接在vps上部署了
…On Mon, Jan 8, 2024 at 12:54 AM sugarforever ***@***.***> wrote:
我直接把你请求的代码复制过来,换我的key,用
https://gateway.openai-cloud.com这个你之前提供的接口调用,还是提示失败。。。
我刚才没有部署。现在部署好了,你可以再试试
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A77NZSX65SLZE7M2R2AUG4DYNLHNFAVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBQGEYTCNRYGU>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
你可以看看vercel上的日志,确定下是什么错误。另外,vercel的部署是以serverless function的形式运行的,有10秒的执行时长限制。 |
A server error has occurred FUNCTION_INVOCATION_FAILED |
跟10s没关系,我用你vercel部署的那个地址也一样无法请求,我看了下vercel上的log,报错详情如下,是不是还是需要我在部署的时候修改什么?
|
明白了。最近的代码里,会从config_list.json里读取api key信息。https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example。代码是main.py的config_dict = load_config_dict()。vercel上应该不支持这个特性。 我的vercel部署已经废弃了。 你应该也需要在一个文件系统的环境运行当前版本,比如EC2。 我来看看这部分。可能需要一个新的PR,毕竟这个config_list.json不是必须的。 |
我之前试过在服务器部署是没问题的,就是服务器部署自己要处理 nginx才能用 https,还是不如在云平台方便哈哈
sugarforever ***@***.***>于2024年1月8日 周一23:59写道:
… 跟10s没关系,我用你vercel部署的那个地址也一样无法请求,我看了下vercel上的log,报错详情如下,是不是还是需要我在部署的时候修改什么?
[ERROR] TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last):
File "/var/lang/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/var/task/vc__handler__python.py", line 13, in <module>
__vc_spec.loader.exec_module(__vc_module)
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "./main.py", line 17, in <module>
config_dict = load_config_dict()
File "/var/task/models/config.py", line 12, in load_config_dict
with open(config_list_path, "r") as file:INIT_REPORT Init Duration: 1611.21 ms Phase: init Status: error Error Type: Runtime.ExitError
[ERROR] TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last):
File "/var/lang/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/var/task/vc__handler__python.py", line 13, in <module>
__vc_spec.loader.exec_module(__vc_module)
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "./main.py", line 17, in <module>
config_dict = load_config_dict()
File "/var/task/models/config.py", line 12, in load_config_dict
with open(config_list_path, "r") as file:INIT_REPORT Init Duration: 2830.87 ms Phase: invoke Status: error Error Type: Runtime.ExitError
Unknown application error occurred
Runtime.Unknown
明白了。最近的代码里,会从config_list.json里读取api key信息。
https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example。代码是main.py的config_dict
= load_config_dict()。vercel上应该不支持这个特性。
我的vercel部署已经废弃了。
你应该也需要在一个文件系统的环境运行当前版本,比如EC2。
我来看看这部分。可能需要一个新的PR,毕竟这个config_list.json不是必须的。
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
参考 https://github.com/sugarforever/spark-api-gateway/blob/main/Dockerfile
目前镜像是跑在8000端口,同时配置了SSL的证书的。这样就可以直接支持HTTPs了。不需要nginx。当然前提是你自行处理好证书颁发和更新。 |
好,我明天再试试
…On Tue, Jan 9, 2024 at 12:13 AM sugarforever ***@***.***> wrote:
我之前试过在服务器部署是没问题的,就是服务器部署自己要处理 nginx才能用 https,还是不如在云平台方便哈哈 sugarforever *@*
.
*>于2024年1月8日 周一23:59写道: … <#m_8404388913961321204_>
跟10s没关系,我用你vercel部署的那个地址也一样无法请求,我看了下vercel上的log,报错详情如下,是不是还是需要我在部署的时候修改什么?
[ERROR] TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last): File
"/var/lang/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "", line
1030, in _gcd_import File "", line 1007, in _find_and_load File "", line
986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File
"", line 850, in exec_module File "", line 228, in
_call_with_frames_removed File "/var/task/vc__handler__python.py", line 13,
in __vc_spec.loader.exec_module(__vc_module) File "", line 850, in
exec_module File "", line 228, in _call_with_frames_removed File
"./main.py", line 17, in config_dict = load_config_dict() File
"/var/task/models/config.py", line 12, in load_config_dict with
open(config_list_path, "r") as file:INIT_REPORT Init Duration: 1611.21 ms
Phase: init Status: error Error Type: Runtime.ExitError [ERROR] TypeError:
expected str, bytes or os.PathLike object, not NoneType Traceback (most
recent call last): File "/var/lang/lib/python3.9/importlib/init.py", line
127, in import_module return _bootstrap._gcd_import(name[level:], package,
level) File "", line 1030, in _gcd_import File "", line 1007, in
_find_and_load File "", line 986, in _find_and_load_unlocked File "", line
680, in _load_unlocked File "", line 850, in exec_module File "", line 228,
in _call_with_frames_removed File "/var/task/vc__handler__python.py", line
13, in __vc_spec.loader.exec_module(__vc_module) File "", line 850, in
exec_module File "", line 228, in _call_with_frames_removed File
"./main.py", line 17, in config_dict = load_config_dict() File
"/var/task/models/config.py", line 12, in load_config_dict with
open(config_list_path, "r") as file:INIT_REPORT Init Duration: 2830.87 ms
Phase: invoke Status: error Error Type: Runtime.ExitError Unknown
application error occurred Runtime.Unknown
明白了。最近的代码里,会从config_list.json里读取api key信息。
https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example。代码是main.py的config_dict
<https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example%E3%80%82%E4%BB%A3%E7%A0%81%E6%98%AFmain.py%E7%9A%84config_dict>
= load_config_dict()。vercel上应该不支持这个特性。 我的vercel部署已经废弃了。
你应该也需要在一个文件系统的环境运行当前版本,比如EC2。 我来看看这部分。可能需要一个新的PR,毕竟这个config_list.json不是必须的。
— Reply to this email directly, view it on GitHub <#11 (comment)
<#11 (comment)>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA
<https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA>
. You are receiving this because you commented.Message ID: @.*>
参考 https://github.com/sugarforever/spark-api-gateway/blob/main/Dockerfile
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--ssl-keyfile=/etc/ssl/key.pem", "--ssl-certfile=/etc/ssl/cert.pem"]
目前镜像是跑在8000端口,同时配置了SSL的证书的。这样就可以直接支持HTTPs了。不需要nginx。当然前提是你自行处理好证书颁发和更新。
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A77NZSRCLQD467NCIZX5RJTYNQLI5AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM4DGNBRGI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
我修正了vercel部署的问题。我的那个vercel域名可以使用了。
|
你这是搞了一晚上啊
sugarforever ***@***.***>于2024年1月9日 周二07:52写道:
… 好,我明天再试试
… <#m_6128860949279380728_>
On Tue, Jan 9, 2024 at 12:13 AM sugarforever *@*.*> wrote:
我之前试过在服务器部署是没问题的,就是服务器部署自己要处理 nginx才能用 https,还是不如在云平台方便哈哈 sugarforever @ .
>于2024年1月8日 周一23:59写道: … <#m_8404388913961321204_>
跟10s没关系,我用你vercel部署的那个地址也一样无法请求,我看了下vercel上的log,报错详情如下,是不是还是需要我在部署的时候修改什么?
[ERROR] TypeError: expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last): File
"/var/lang/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "", line
1030, in _gcd_import File "", line 1007, in _find_and_load File "", line
986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File
"", line 850, in exec_module File "", line 228, in
_call_with_frames_removed File "/var/task/vc__handler__python.py", line 13,
in __vc_spec.loader.exec_module(__vc_module) File "", line 850, in
exec_module File "", line 228, in _call_with_frames_removed File
"./main.py", line 17, in config_dict = load_config_dict() File
"/var/task/models/config.py", line 12, in load_config_dict with
open(config_list_path, "r") as file:INIT_REPORT Init Duration: 1611.21 ms
Phase: init Status: error Error Type: Runtime.ExitError [ERROR] TypeError:
expected str, bytes or os.PathLike object, not NoneType Traceback (most
recent call last): File "/var/lang/lib/python3.9/importlib/init.py", line
127, in import_module return _bootstrap._gcd_import(name[level:], package,
level) File "", line 1030, in _gcd_import File "", line 1007, in
_find_and_load File "", line 986, in _find_and_load_unlocked File "", line
680, in _load_unlocked File "", line 850, in exec_module File "", line 228,
in _call_with_frames_removed File "/var/task/vc__handler__python.py", line
13, in __vc_spec.loader.exec_module(__vc_module) File "", line 850, in
exec_module File "", line 228, in _call_with_frames_removed File
"./main.py", line 17, in config_dict = load_config_dict() File
"/var/task/models/config.py", line 12, in load_config_dict with
open(config_list_path, "r") as file:INIT_REPORT Init Duration: 2830.87 ms
Phase: invoke Status: error Error Type: Runtime.ExitError Unknown
application error occurred Runtime.Unknown
明白了。最近的代码里,会从config_list.json里读取api key信息。
https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example。代码是main.py的config_dict
<https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example%E3%80%82%E4%BB%A3%E7%A0%81%E6%98%AFmain.py%E7%9A%84config_dict>
https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example%E3%80%82%E4%BB%A3%E7%A0%81%E6%98%AFmain.py%E7%9A%84config_dict
<https://github.com/sugarforever/spark-api-gateway/blob/main/config_list.json.example%E3%80%82%E4%BB%A3%E7%A0%81%E6%98%AFmain.py%E7%9A%84config_dict>
= load_config_dict()。vercel上应该不支持这个特性。 我的vercel部署已经废弃了。
你应该也需要在一个文件系统的环境运行当前版本,比如EC2。 我来看看这部分。可能需要一个新的PR,毕竟这个config_list.json不是必须的。
— Reply to this email directly, view it on GitHub <#11
<#11> (comment) <#11
(comment)
<#11 (comment)>>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA
<https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA>
https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA
<https://github.com/notifications/unsubscribe-auth/A77NZSVWL4SDU7RTIWJY7QLYNQJV7AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM2TIMBZGA>
. You are receiving this because you commented.Message ID: @.> 参考
https://github.com/sugarforever/spark-api-gateway/blob/main/Dockerfile
<https://github.com/sugarforever/spark-api-gateway/blob/main/Dockerfile>
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000",
"--ssl-keyfile=/etc/ssl/key.pem", "--ssl-certfile=/etc/ssl/cert.pem"]
目前镜像是跑在8000端口,同时配置了SSL的证书的。这样就可以直接支持HTTPs了。不需要nginx。当然前提是你自行处理好证书颁发和更新。 —
Reply to this email directly, view it on GitHub <#11 (comment)
<#11 (comment)>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A77NZSRCLQD467NCIZX5RJTYNQLI5AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM4DGNBRGI
<https://github.com/notifications/unsubscribe-auth/A77NZSRCLQD467NCIZX5RJTYNQLI5AVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBRGM4DGNBRGI>
. You are receiving this because you commented.Message ID: @.*>
我修正了vercel部署的问题。我的那个vercel域名可以使用了。
curl --location 'https://sparkai-gateway.vercel.app/v1/chat/completions' \
--header "X_APP_ID: $X_APP_ID" \
--header "X_API_SECRET: $X_API_SECRET" \
--header "X_API_KEY: $X_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"messages": [
{
"role": "user",
"content": "请写一篇关于春天的散文,50字"
}
],
"model": "spark-chat-v1.5",
"max_tokens": null,
"stream": false,
"n": 1,
"temperature": 0.7
}'
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A77NZSSLUPVZZZGVOO2JC3DYNSBDVAVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBSGAYDAOBVGI>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
嘿嘿。 请参考 https://github.com/sugarforever/spark-api-gateway/README.md ,昨天对模型的命名和API的使用都有了不小的修改。 目的在于期望将来支持更多的模型。 |
你是讯飞的员工吗?这么热爱,我有一个需要用到function calling 的项目,目前只做了 OpenAI 的,你看你这个项目考不考虑转接讯飞的function calling,你做完我就接 |
我不是哈。 function call讯飞模型支持的,目前有个问题,传递了函数的话,模型必然会调用,而不是智能判断是否该用。近期等讯飞更新后会好一些。 本周我会先测试一下function call,让这个项目支持函数调用 |
太牛逼了你!你也体验体验我上面的项目,提提建议
…On Tue, Jan 9, 2024 at 11:59 PM sugarforever ***@***.***> wrote:
你是讯飞的员工吗?这么热爱,我有一个需要用到function calling 的项目,目前只做了 OpenAI
的,你看你这个项目考不考虑转接讯飞的function calling,你做完我就接
https://github.com/fatwang2/search2ai
我不是哈。
function call讯飞模型支持的,目前有个问题,传递了函数的话,模型必然会调用,而不是智能判断是否该用。近期等讯飞更新后会好一些。
本周我会先测试一下function call,让这个项目支持函数调用
—
Reply to this email directly, view it on GitHub
<#11 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A77NZSUUGA375UXP3ANFPA3YNVSNXAVCNFSM6AAAAABBPWZN26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBTGMZDGMJSGU>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
ok. 方便的话留个联系方式吧,这里聊还是不太合适。 |
This PR is to support base64 encoded image data.
It's to make sure it conforms to OpenAI vision request payload schema.