可以看到刷新以后,依赖变成了1.0.0的snapshot版本了
可以在依赖中看一下这个版本 ,可以看到,这里有个
AutoConfiguration这个就是自动注入,封装好了给我们用的
然后去源码中看一下,这里面提供了
OpenAiChatClient 对接聊天接口的客户端,当然还有
OpenAiEmbeddingClient等等对吧.
然后我们去写一个ChatController可以看到,写一个接口
里面只需要把OpenAiChatClient @Resource导入进来,然后,直接调用.call方法
然后返回字符串类型的数据.
这样就可以了.
非常简单,支持get/post访问 可以看到用的@RequestMapping
然后去执行,然后直接用浏览器访问
可以看到没问题
正常返回了,然后再去看
还有一个ChatClient是传入一个Prompt的.
我们这里去new Prompt传入,然后返回一个ChatResponse,然后返回
可以看到执行一下,接口调用,看看返回的内容.
然后我们把这个写成chat2接口.
可以只返回chatResponse对象中的content部分.
可以看到
然后再看一下Prompt中还可以传入很多其他的参数.
然后再来看这里
除了传入new Prompt(msg,new ...)
可以看到后面还可以传入其他的参数,比如OpenAiChatOptions
关于这个参数怎么使用,可以去看官方文档,这里,找到api doc
可以看到左侧找到openai
然后右边找案例
可以看到这里这个OpenAiChatOptions 就有写怎么用了.
可以看到这里我们使用
OpenAiChatOptions.builder().withModel("gpt-4-32k")...
通过这样,指定gpt的版本,还有温度,
版本越高,越好,温度越高,创造性越好.可以看到上面的介绍
然后执行,去调用接口的时候报错,
说不支持这个版本的模型调用,因为免费的API接口限制了调用.
删除gpt-4-32k的设置,或者用低版本的就可以了.
然后再来看,在配置文件中也可以指定模型配置
和温度配置.
这里配置文件中的会首先生效,然后
如果代码中配置了,就以代码中为准.
可以看到配置文件中配置了也是生效的,虽然代码中没有配置,也会报错.
然后配置文件中model,配置注释掉
如果想看,默认调用的是什么模型,可以这样,从这里点进去 配置文件这里是可以点击的
到代码这里,然后打断点.在getModel,然后运行
调试模式运行,把配置文件model这里注释掉.
可以看到默认,设置的是调用的
是3.5的模型.
然我们这里设置成这个模型
然后再来看,还可以以流式的方式调用
这里有个openAiChatClient.stream 可以看到返回的是
Flux 这个类型
我们用stream流式调用去试试 写上代码,然后执行
可以看到执行的结果.
返回的flux.collectList
然后执行,访问接口,可以看到结果.
然后我们可以把返回的collection,遍历一下打印出来看看
执行以后可以看到这个就是,流式输出的结果.