openai-proxy
openai-proxy copied to clipboard
hello。请教一下。我使用了咱们的地址做了转发。结果报错是 400 。是咱们这边的协议转换吃了什么特殊值么
ObjectMapper mapper = defaultObjectMapper();
OkHttpClient client = OpenAiService.defaultClient("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",
Duration.ofMinutes(2))
.newBuilder()
.build();
Retrofit retrofit = new retrofit2.Retrofit.Builder().
baseUrl("https://open.aiproxy.xyz/").
client(client).
addConverterFactory(JacksonConverterFactory.create(mapper)).
addCallAdapterFactory(RxJava2CallAdapterFactory.create()).
build();
Retrofit defaultRetrofit = OpenAiService.defaultRetrofit(client, mapper);
OpenAiApi api = retrofit.create(OpenAiApi.class);
OpenAiService openAiService = new OpenAiService(api);
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("gpt-3.5-turbo-0301")
.messages(Lists.newArrayList(
new ChatMessage("user", ""),
new ChatMessage("user", "他有什么贡献")
))
.build();
ChatCompletionResult result = openAiService.createChatCompletion(chatCompletionRequest);
System.out.println(result);
Caused by: retrofit2.adapter.rxjava2.HttpException: HTTP 400
at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:57)
at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:38)
at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:48)
at io.reactivex.Observable.subscribe(Observable.java:12267)
at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35)
at io.reactivex.Observable.subscribe(Observable.java:12267)
at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35)
at io.reactivex.Single.subscribe(Single.java:3603)
at io.reactivex.Single.blockingGet(Single.java:2834)
at com.theokanning.openai.service.OpenAiService.execute(OpenAiService.java:217)

并且看起来没有吧 header 转发过去

这个里面的key不是你真的吧 建议隐去 不要公开出来 请求头里面设置json类型 然后传递的body必须是json结构数据
curl --location --request POST 'https://open.aiproxy.xyz/v1/completions' \
--header 'Authorization: Bearer sk-XXXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "text-davinci-003",
"prompt": "扮演一个导游,告诉我杭州有啥好玩的",
"max_tokens": 100,
"temperature": 0
}'
把这里的 sk-XXXXXXXX
换成你自己的 API KEY 试试看

这个里面的key不是你真的吧 建议隐去 不要公开出来 请求头里面设置json类型 然后传递的body必须是json结构数据
curl --location --request POST 'https://open.aiproxy.xyz/v1/completions' \ --header 'Authorization: Bearer sk-XXXXXXXX' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "text-davinci-003", "prompt": "扮演一个导游,告诉我杭州有啥好玩的", "max_tokens": 100, "temperature": 0 }'
把这里的
sk-XXXXXXXX
换成你自己的 API KEY 试试看![]()
那个 token 已经被封禁了。发出来没啥事。就是用来测试能不能吃到 Openapi 的 429 来看链路是不是通的。
我确定发送过去的是json 数据结构。因为开 VPN 的时候直连打过去上面的代码是 ok 的。现在不知道问题出在了哪里。 使用 postman 确实是可以能被 json 正确的解析到
这个里面的key不是你真的吧 建议隐去 不要公开出来 请求头里面设置json类型 然后传递的body必须是json结构数据
curl --location --request POST 'https://open.aiproxy.xyz/v1/completions' \ --header 'Authorization: Bearer sk-XXXXXXXX' \ --header 'Content-Type: application/json' \ --data-raw '{ "model": "text-davinci-003", "prompt": "扮演一个导游,告诉我杭州有啥好玩的", "max_tokens": 100, "temperature": 0 }'
把这里的
sk-XXXXXXXX
换成你自己的 API KEY 试试看那个 token 已经被封禁了。发出来没啥事。就是用来测试能不能吃到 Openapi 的 429 来看链路是不是通的。
我确定发送过去的是json 数据结构。因为开 VPN 的时候直连打过去上面的代码是 ok 的。现在不知道问题出在了哪里。 使用 postman 确实是可以能被 json 正确的解析到
调试下代码看看底层传递到代理的请求数据是怎么样的,包括请求头和请求的Body,看看有没有问题
如果Postman里面代理和OpenAI返回的数据结构一致,就不是代理的问题,你看看两个返回的数据结构是一样的吗
可能账号被封了。看下有没有收到邮件。