xhxj / json-gpt-translator Goto Github PK
View Code? Open in Web Editor NEWGPT-Translator 是一款前后端分离基于 OpenAI 的高效翻译软件。这个工具可以读取 JSON 和 Excel(zip) 文件,然后进行行翻译,并输出结果。
Home Page: https://github.com/XHXJ/json-GPT-translator
GPT-Translator 是一款前后端分离基于 OpenAI 的高效翻译软件。这个工具可以读取 JSON 和 Excel(zip) 文件,然后进行行翻译,并输出结果。
Home Page: https://github.com/XHXJ/json-GPT-translator
你好,在使用第三方模型DeepSeek去翻译时,测试中可以正常翻译,但是上传json文件去翻译后控制台会报错。使用GPT3.5的模型翻译时可以正常翻译文件。以下是详细信息:
多行翻译Promote:你是一个翻译工具,翻译 JSON 文件中的 value为中文。输出JSON 格式结果,不要添加多余字符或标记,一定不要添加```和json。保留特殊字符
单行翻译Promote:你是一个翻译工具,结合语境将原文翻译为中文。输出key为'tr'的JSON格式结果,不要添加多余字符或标记,一定不要添加```和json。保留特殊字符
对JSON翻译时的CMD控制台信息:
首先会大量弹出以下提示信息:
WARN 24740 --- [ taskExecutor-1] com.unfbx.chatgpt.utils.TikTokensUtil : Warning: gpt-3.5-turbo may update over time. Returning num tokens assuming gpt-3.5-turbo-0613.
其次会弹出以下错误信息:
2024-05-15T00:36:23.459+08:00 ERROR 24740 --- [ ChatGpt-32] t.a.c.ChatGptTranslationAsyncServiceImpl : 鎵归噺缈昏瘧浠诲姟寮傚父
java.lang.NullPointerException: null
2024-05-15T00:36:23.459+08:00 WARN 24740 --- [ ChatGpt-9] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.459+08:00 WARN 24740 --- [ ChatGpt-16] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.459+08:00 WARN 24740 --- [ ChatGpt-32] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-26] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-7] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-20] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-17] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-11] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.458+08:00 WARN 24740 --- [ ChatGpt-3] com.unfbx.chatgpt.utils.TikTokensUtil : 涓嶆敮鎸佺殑model deepseek-chat. See https://github.com/openai/openai-python/blob/main/chatml.md 鏇村淇℃伅.
2024-05-15T00:36:23.460+08:00 ERROR 24740 --- [ ChatGpt-3] t.a.c.ChatGptTranslationAsyncServiceImpl : 鎵归噺缈昏瘧浠诲姟寮傚父
示例
"「この先に、何があると……?」":"“前方会有什么呢……?”",
"「本来であれば閣下のお力をお借りするため、\n十分な信頼を得てからと思いましたが――」":"“本来想在获得阁下的信任之后再请求您的帮助,\n但是,最近的掠夺者的行动,让我明白了\n我们已经没有时间耽搁了。”",
"「ですが、先日のプレデターの統率された行動、あれを\n目の当たりにして悠長に事を構える時間は残されていない\nのだと理解しました」":"“在前方的是,格兰泰尔的\n最重要的机密设施——”",
"「この先にあるものは、グランテールの\n最重要機密施設――」":"“这是野花城市的竞技场!\n在这里,你可以挑战最强的对手!”",
"「我々の敵は一つであると再認識して頂くために\nお見せるのだということを、御心に留め頂きたく":"「为了让您再次认识到我们的敌人只有一个,\n我们将向您展示」",
"思います」":"「……我们的敌人……」",#这里出错了!!!!!!!!!!!!
"「……我々の敵…」":"「电梯……?」",
"「エレベーター……?」":"「这之后是矿道吗?但是,为什么\n会在城市正下方呢?」",
"「この先は坑道なのかね? しかし、何故\n街の直下に…?」":"「从这里开始乘电梯,\n下到地下100米」",
"「ここからエレベーターを乗り継いで、\n地下100メートルまで下ります」":"「100……」",
"「100……」":"「这个设施的发现是由某个事件引起的——」",
"「施設の発見はとある出来事が発端でした――」":"「大约14年前,您还记得\n源自大陆西部的大地震吗?」",
"「今から14年程前、大陸西部を震源とする\n大地震を閣下は憶えておられますか?」":"「当然记得。那时候出现了那个大洞穴」",
"「もちろんだ。その時にあの大洞穴が出現したのだから」":"「后来的调查表明,这是由某种重力异常引起的」",#这里应该是另一次打包翻译了吧,从这往后一段正常
——————————————————————————————————————————————
问题
1.\n换行符基本不会被保留
2.上文是长句子,紧跟者一个短句子,这种情况下几乎百分百会被合并行,导致串行
试了好多种引导语句,但gtp3.5依然还是会合并
——————————————————————————————————————————————
"「ま、待ってくれ。重力異常とはなんだ…?\nそんな話は聞いたことが……」":"“嗯,等等。重力异常是什么……?我从来没有听说过这样的事情……”\n\n(注:原文中的日语字符已经被转化为了半角字符,以下翻译同理)\n\n“Wait a minute. What is a gravity anomaly...? I've never heard of such a thing before...”\n\n(译注:原文中的“ま”是一种表示犹豫、思考的语气助词,可以翻译为“嗯”、“那个”等。)",
——————————————————————————————————————————————
还有这种偶尔抽风不知道在干嘛的......................
这几种情况有没有办法解决?
app.log
有三個bug:
1.無法使用gpt4:
Rate limit reached for gpt-4 in organization org-MIOc5J4yf7zsXzodv1s2OMAg on tokens per min (TPM): Limit 10000, Used 7875, Requested 2857. Please try again in 4.392s. Visit https://platform.openai.com/account/rate-limits to learn more.
2.讀到亂碼(但我開文件查看是正常的)
3.跑到一半卡住
我不知道我缺了什麼步驟
我無法正常使用他 我確實導入我的json
也輸入了我的API Key
但是開始翻譯後並沒有反應
而當我嘗試chagpt配置中的測試翻譯時 也總是出現系統異常
我少了什麼嗎?
1.程序运行只能在国内ip环境
2.excel的话,只能用Translator++导出zip才行,自己压缩成zip无法上传
3.无法保存CHATgpt配置,显示系统异常
我的excel文件格式是第一列是序号,第二列是中文,要把它翻译成日文
在我自身使用 网页版会员的情况下,觉得4.0的聪慧比3.5高出不少。
理论上使用4.0API的翻译效果会更好。
虽然仍然没有申请到4.0API接口,不过这应该是个很不错的提议。
当前使用3.5英译中,有些情况会不对等行,或者漏翻。
应该是出自于3.5自身的局限。
可以试试改用“gpt-3.5-turbo-instruct”,并且使用批量翻译,我测试了一下,成本是逐条翻译的几十分之一
chunked = ChunkedSubmit(list, 1200) export = {} for value in chunked: body = f"Translate to {tl or 'Chinese'}, save as JSON, with translation results as key-value pairs:" + \ json.dumps(value) tokens = 4096 - get_token_count(body) complete = openai.Completion.create( model="gpt-3.5-turbo-instruct", prompt=body, max_tokens=tokens, temperature=0.2 ) print(complete) export.update(json.loads(complete['choices'][0]['text'])) return export
使用的版本为v1.2.0,以管理员启动,已使用魔法
已检验GPTAPI是可用的
配置默认没动,但是测试翻译出错,相关报错提示如下:
2024-02-10T20:39:22.919+08:00 INFO 17172 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-02-10T20:39:22.919+08:00 INFO 17172 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2024-02-10T20:39:22.920+08:00 INFO 17172 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2024-02-10T20:39:23.038+08:00 WARN 17172 --- [nio-8080-exec-1] c.b.m.c.t.support.ReflectLambdaMeta : Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not "opens java.lang.invoke" to unnamed module @3c756e4d
2024-02-10T20:40:24.297+08:00 INFO 17172 --- [nio-8080-exec-9] c.u.chatgpt.interceptor.OpenAILogger : OkHttp-------->:--> POST https://api.openai.com/v1/chat/completions (732-byte body)
2024-02-10T20:40:45.418+08:00 INFO 17172 --- [nio-8080-exec-9] c.u.chatgpt.interceptor.OpenAILogger : OkHttp-------->:<-- HTTP FAILED: java.net.ConnectException: Failed to connect to api.openai.com/157.240.17.35:443
2024-02-10T20:40:45.427+08:00 ERROR 17172 --- [nio-8080-exec-9] c.x.j.f.w.h.GlobalExceptionHandler : [defaultExceptionHandler]
给电脑安装JDK21以后,unable报错消失,但仍然系统异常,相关提示如下:
2024-02-10T20:52:43.123+08:00 INFO 21408 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-02-10T20:52:43.123+08:00 INFO 21408 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2024-02-10T20:52:43.130+08:00 INFO 21408 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2024-02-10T20:52:49.678+08:00 INFO 21408 --- [nio-8080-exec-3] c.u.chatgpt.interceptor.OpenAILogger : OkHttp-------->:--> POST https://api.openai.com/v1/chat/completions (732-byte body)
2024-02-10T20:53:10.753+08:00 INFO 21408 --- [nio-8080-exec-3] c.u.chatgpt.interceptor.OpenAILogger : OkHttp-------->:<-- HTTP FAILED: java.net.ConnectException: Failed to connect to api.openai.com/31.13.71.19:443
2024-02-10T20:53:10.753+08:00 ERROR 21408 --- [nio-8080-exec-3] c.x.j.f.w.h.GlobalExceptionHandler : [defaultExceptionHandler]
java.lang.RuntimeException: java.net.ConnectException: Failed to connect to api.openai.com/31.13.71.19:443
at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:45) ~[rxjava-2.0.0.jar!/:2.0.0]
at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:90) ~[rxjava-2.0.0.jar!/:2.0.0]
at io.reactivex.Single.blockingGet(Single.java:2002) ~[rxjava-2.0.0.jar!/:2.0.0]
at com.unfbx.chatgpt.OpenAiClient.chatCompletion(OpenAiClient.java:658) ~[chatgpt-java-1.0.13.jar!/:na]
at com.xhxj.jsongpttranslator.translation.async.chat.ChatGptTranslationAsyncServiceImpl.testChatGptConfig(ChatGptTranslationAsyncServiceImpl.java:293) ~[classes!/:1.2.0]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.8.jar!/:6.0.8]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:216) ~[spring-aop-6.0.8.jar!/:6.0.8]
at jdk.proxy2/jdk.proxy2.$Proxy103.testChatGptConfig(Unknown Source) ~[na:na]
at com.xhxj.jsongpttranslator.service.chatgpt.ChatGptTranslationServiceImpl.testChatGptConfig(ChatGptTranslationServiceImpl.java:159) ~[classes!/:1.2.0]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.8.jar!/:6.0.8]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:216) ~[spring-aop-6.0.8.jar!/:6.0.8]
at jdk.proxy2/jdk.proxy2.$Proxy101.testChatGptConfig(Unknown Source) ~[na:na]
at com.xhxj.jsongpttranslator.controller.OpenaiProperties.OpenaiPropertiesController.testChatGptConfig(OpenaiPropertiesController.java:95) ~[classes!/:1.2.0]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.0.8.jar!/:6.0.8]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.8.jar!/:6.0.8]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.8.jar!/:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.8.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:1623) ~[na:na]
Caused by: java.net.ConnectException: Failed to connect to api.openai.com/31.13.71.19:443
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at com.unfbx.chatgpt.interceptor.DefaultOpenAiAuthInterceptor.intercept(DefaultOpenAiAuthInterceptor.java:45) ~[chatgpt-java-1.0.13.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at com.unfbx.chatgpt.interceptor.OpenAiResponseInterceptor.intercept(OpenAiResponseInterceptor.java:27) ~[chatgpt-java-1.0.13.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:221) ~[logging-interceptor-4.10.0.jar!/:na]
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) ~[okhttp-4.10.0.jar!/:na]
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204) ~[retrofit-2.9.0.jar!/:na]
at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:46) ~[adapter-rxjava2-2.9.0.jar!/:na]
at io.reactivex.Observable.subscribe(Observable.java:10151) ~[rxjava-2.0.0.jar!/:2.0.0]
at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35) ~[adapter-rxjava2-2.9.0.jar!/:na]
at io.reactivex.Observable.subscribe(Observable.java:10151) ~[rxjava-2.0.0.jar!/:2.0.0]
at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35) ~[rxjava-2.0.0.jar!/:2.0.0]
at io.reactivex.Single.subscribe(Single.java:2517) ~[rxjava-2.0.0.jar!/:2.0.0]
at io.reactivex.Single.blockingGet(Single.java:2001) ~[rxjava-2.0.0.jar!/:2.0.0]
... 62 common frames omitted
Caused by: java.net.ConnectException: Connection timed out: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:673) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:585) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:666) ~[na:na]
at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128) ~[okhttp-4.10.0.jar!/:na]
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295) ~[okhttp-4.10.0.jar!/:na]
... 91 common frames omitted
目前正在尝试使用API代理
尝试使用代理,无效,不清楚是不是代理没有正常运行,搭建云函数反向代理确实监控到访问。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.