asleepyfish / chatgpt Goto Github PK
View Code? Open in Web Editor NEW实现可连续对话和流式输出的ChatGPT API(基于SpringBoot和Vue实现流式输出)
Home Page: https://blog.csdn.net/qq_41821963/article/details/128992539
License: MIT License
实现可连续对话和流式输出的ChatGPT API(基于SpringBoot和Vue实现流式输出)
Home Page: https://blog.csdn.net/qq_41821963/article/details/128992539
License: MIT License
使用baseUrl来反向代理,不通过proxy的时候,无法流式返回结果
这部分我尝试去掉blockingForEach想实现api接收到立马返回给前端,但总是报错,空指针,或者别的.这部分能有颁发解决吗?本人小白,太深奥的也没看明白.. 特此来请教作者大佬super.streamChatCompletion(chatCompletionRequest).doOnError(Throwable::printStackTrace).blockingForEach(chunk -> {
chunk.getChoices().stream().map(choice -> choice.getMessage().getContent())
.filter(Objects::nonNull).findFirst().ifPresent(o -> {
try {
os.write(o.getBytes(Charset.defaultCharset()));
os.flush();
} catch (Exception e) {
throw new RuntimeException(e);
}
});
chunks.add(chunk);
});
目前多轮会话根据传参user为Key,使用com.google.common.cache 储存在本地,集群部署后缓存无法共享导致多轮会话信息丢失。
能否在配置中支持redis等中间件来代替本地缓存?
OpenAiProxyService类中使用defaultClient方法初始化OKHttpClient,Builder时没有指定dispatcher,自动使用默认构造器
此行为限制了最大只能有64个请求且每个host最多5个请求
实际压测时发现接口大量超时,起初怀疑是目标代理带宽/并发等问题,最后调查代理端一切正常,翻调用源码发现此问题
OpenAiProxyService方法没有提供客制化Client的构造方法,目前依然只能通过重写源码的方式解决
另外在压测时发现,如果目标地址返回null,数据也会被写入本地cache,但再次读取时会报空指针异常。
java.io.InterruptedIOException: executor rejected
at okhttp3.internal.connection.RealCall$AsyncCall.executeOn(RealCall.kt:501)
at okhttp3.Dispatcher.promoteAndExecute(Dispatcher.kt:184)
at okhttp3.Dispatcher.enqueue$okhttp(Dispatcher.kt:125)
at okhttp3.internal.connection.RealCall.enqueue(RealCall.kt:164)
at retrofit2.OkHttpCall.enqueue(OkHttpCall.java:147)
at com.theokanning.openai.service.OpenAiService.lambda$stream$0(OpenAiService.java:294)
at io.reactivex.internal.operators.flowable.FlowableCreate.subscribeActual(FlowableCreate.java:71)
at io.reactivex.Flowable.subscribe(Flowable.java:14935)
at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:37)
at io.reactivex.Flowable.subscribe(Flowable.java:14935)
at io.reactivex.internal.operators.flowable.FlowableDoOnEach.subscribeActual(FlowableDoOnEach.java:50)
at io.reactivex.Flowable.subscribe(Flowable.java:14935)
at io.reactivex.internal.operators.flowable.BlockingFlowableIterable.iterator(BlockingFlowableIterable.java:42)
at io.reactivex.Flowable.blockingForEach(Flowable.java:5772)
at io.github.asleepyfish.util.OpenAiUtils.createStreamChatCompletion(OpenAiUtils.java:107)
at io.github.asleepyfish.util.OpenAiUtils.createStreamChatCompletion(OpenAiUtils.java:78)
at io.github.asleepyfish.util.OpenAiUtils.createStreamChatCompletion(OpenAiUtils.java:74)
at io.github.asleepyfish.util.OpenAiUtils.createStreamChatCompletion(OpenAiUtils.java:70)
at io.github.asleepyfish.util.OpenAiUtils.createStreamChatCompletion(OpenAiUtils.java:66)
at com.asleepyfish.controller.ChatGPTController.streamChatWithWeb(ChatGPTController.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:670)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:779)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
SOCKS : authentication failed
如何能填入账号密码呢?
如题
现在类似于https://openai.api2d.net这样的代理服务用不了。
建议OpenAiProxyService.BASE_URL不要写死,ProxyHost和ProxyPort统一改为ProxyUrl。
你用new Proxy(Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
这样如果反向代理是HTTPS,就无法使用了。而且大多数反向代理HTTPS是自签名证书,建议忽略证书校验。
还有,README最好能写一下不通过Spring Boot,仅通过JDK的main方法开启连续对话的功能,还有自定义system提示词,因为还有很多场景是属于特例化的任务,比如公文写作、小说创作之类的,往往需要把公司背景、小说大纲填上去作为系统提示词。
我们的用户有的是在Linux命令提示符下进行连续回话,并根据返回结果进行自动化运维。
还有些场景,比如写论文,我们的用户是在桌面上开启一个Swing的窗口进行对话的。
所以如果和Spring Boot深度集成,会比较受限。
还有一个重要的事情,就是可否写一下如何旁路录制对话过程和每次消耗的Token。
作者辛苦了,谢谢。
2023-04-26 18:31:37.229 ERROR 31652 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: okio.BufferedSource.getBuffer()Lokio/Buffer;] with root cause
java.lang.NoSuchMethodError: okio.BufferedSource.getBuffer()Lokio/Buffer;
the error occurred when testing
出现了这个错误,能帮忙看下么
[java.io.IOException: unexpected end of stream on https://api.openai.com/..., java.io.IOException: unexpected end of stream on https://api.openai.com/...]
2023-05-22 18:30:08.079 [scheduling-1] ERROR i.g.a.service.OpenAiProxyService - answer failed 1 times, the error message is: java.io.IOException: unexpected end of stream on https://api.openai.com/...
开发版本信息
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<hutool.version>5.8.11</hutool.version>
<bouncycastle.version>1.72</bouncycastle.version>
<mybatis-plus.version>3.5.3.1</mybatis-plus.version>
<hb0730-jsons.version>1.0.3</hb0730-jsons.version>
<knife4j.version>4.1.0</knife4j.version>
<jwt.version>4.2.2</jwt.version>
</properties>
会有以下报错
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:491) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1324) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1161) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:961) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:915) ~[spring-context-6.0.3.jar:6.0.3]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584) ~[spring-context-6.0.3.jar:6.0.3]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.0.1.jar:3.0.1]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[spring-boot-3.0.1.jar:3.0.1]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[spring-boot-3.0.1.jar:3.0.1]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-3.0.1.jar:3.0.1]
at com.artefact.content_engine.base.BootAdminApp.bootstrap(BootAdminApp.java:28) ~[classes/:na]
at com.artefact.content_engine.BootAdminApplication.main(BootAdminApplication.java:19) ~[classes/:na]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [okhttp3.OkHttpClient]: Factory method 'okHttpClient' threw exception with message: javax/servlet/ServletOutputStream
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171) ~[spring-beans-6.0.3.jar:6.0.3]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.0.3.jar:6.0.3]
... 18 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
at io.github.asleepyfish.config.ChatGPTAutoConfigure.okHttpClient(ChatGPTAutoConfigure.java:30) ~[chatgpt-1.3.4.jar:na]
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$SpringCGLIB$$0.CGLIB$okHttpClient$2(<generated>) ~[chatgpt-1.3.4.jar:na]
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$SpringCGLIB$$2.invoke(<generated>) ~[chatgpt-1.3.4.jar:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.0.3.jar:6.0.3]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-6.0.3.jar:6.0.3]
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$SpringCGLIB$$0.okHttpClient(<generated>) ~[chatgpt-1.3.4.jar:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139) ~[spring-beans-6.0.3.jar:6.0.3]
... 19 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletOutputStream
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
... 30 common frames omitted```
免费的openai反向代理最好别用,这种反向代理服务存在的唯一原因就是盗用api-key
麻烦问一下代理是那种代理,有推荐的搭建教程吗
大佬,在用你给的demo没有任何问题,但我自己的所以项目都报同一个错误
Error creating bean with name 'okHttpClient' defined in io.github.asleepyfish.config.ChatGPTAutoConfigure: Failed to instantiate [okhttp3.OkHttpClient]: Factory method 'okHttpClient' threw exception with message: javax/servlet/ServletOutputStream
救救孩子吧
目前没有发现可以连续对话
如果回话时间很长,期间问的问题有可能答案会很长,很容易就把4096 tokens占满,This model's maximum context length is 4096 tokens
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'okHttpClient' defined in io.github.asleepyfish.config.ChatGPTAutoConfigure: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [okhttp3.OkHttpClient]: Factory method 'okHttpClient' threw exception; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/PropertyNamingStrategies
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:769)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1313)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
at com.wonderscp.Application.main(Application.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [okhttp3.OkHttpClient]: Factory method 'okHttpClient' threw exception; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/PropertyNamingStrategies
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 25 common frames omitted
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/PropertyNamingStrategies
at io.github.asleepyfish.service.openai.OpenAiService.defaultObjectMapper(OpenAiService.java:404)
at io.github.asleepyfish.service.openai.OpenAiService.(OpenAiService.java:70)
at io.github.asleepyfish.config.ChatGPTAutoConfigure.okHttpClient(ChatGPTAutoConfigure.java:30)
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$EnhancerBySpringCGLIB$$c967d178.CGLIB$okHttpClient$0()
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$EnhancerBySpringCGLIB$$c967d178$$FastClassBySpringCGLIB$$114df344.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at io.github.asleepyfish.config.ChatGPTAutoConfigure$$EnhancerBySpringCGLIB$$c967d178.okHttpClient()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 26 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.PropertyNamingStrategies
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 39 common frames omitted
在使用stream到web时,只输出了一半就停止了。有参数可以控制返回长度或者其它操作吗
请问,怎么发送role为system类的消息?RoleEnum.SYSTEM
我自己单独写的程序调用openai的API一切正常,api的URL,api.openai.com换成腾讯云的云函数主机就可以了。但是我用你的这个依赖,代理主机也是写的我这个腾讯云的云函数主机,使用的时候,报错:
i.g.a.service.OpenAiProxyService : answer failed 1 times, the error message is: java.io.IOException: Unexpected response code for CONNECT: 400
proxy-host 代理的ip
proxy-port 代理的端口
如何写,写本地目项的IP和端口吗?
在使用该工具类的时候跑出来一下错误
OpenAiUtils.createCompletion("docker 命令")
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
大概的意思是没有使用ssl证书,请问如何配置
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.