第9节: OpenAI模型对接
以下是openAI的以下帖子: openAI中文网 , openAI官网 ,
获取openAI key的方法:
【OpenAI】获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!_openai api key获取-优快云博客
- 引入maven依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
- 配置yml文件
spring:
ai:
openai:
base-url: https://pro-share-aws-api.zcyai.com/
api-key: *****
embedding-model: text-embedding-ada-002
rag:
embed: nomic-embed-text #nomic-embed-text、text-embedding-ada-002
- 配置openAI接口
Flux<ChatResponse> generateStreamRag(String model, String ragTag, String message);
- 配置openAI配置类
@Bean
public OpenAiApi openAiApi(@Value("${spring.ai.openai.base-url}") String baseUrl, @Value("${spring.ai.openai.api-key}") String apikey) {
return new OpenAiApi(baseUrl, apikey);
}
@Bean
public SimpleVectorStore vectorStore(@Value("${spring.ai.rag.embed}") String model, OllamaApi ollamaApi, OpenAiApi openAiApi) {
if ("nomic-embed-text".equalsIgnoreCase(model)) {
OllamaEmbeddingClient embeddingClient = new OllamaEmbeddingClient(ollamaApi);
embeddingClient.withDefaultOptions(OllamaOptions.create().withModel("nomic-embed-text"));
return new SimpleVectorStore(embeddingClient);
} else {
OpenAiEmbeddingClient embeddingClient = new OpenAiEmbeddingClient(openAiApi);
return new SimpleVectorStore(embeddingClient);
}
}
@Bean
public PgVectorStore pgVectorStore(@Value("${spring.ai.rag.embed}") String model, OllamaApi ollamaApi, OpenAiApi openAiApi, JdbcTemplate jdbcTemplate) {
if ("nomic-embed-text".equalsIgnoreCase(model)) {
OllamaEmbeddingClient embeddingClient = new OllamaEmbeddingClient(ollamaApi);
embeddingClient.withDefaultOptions(OllamaOptions.create().withModel("nomic-embed-text"));
return new PgVectorStore(jdbcTemplate, embeddingClient);
} else {
OpenAiEmbeddingClient embeddingClient = new OpenAiEmbeddingClient(openAiApi);
return new PgVectorStore(jdbcTemplate, embeddingClient);
}
}
- UI对接
对话框
上传文件
上传知识Git
云服务器部署上线
- 我使用的openAI https://ai.nengyongai.cn/v1
这两个名字要相同
- DockerFile文件
# 基础镜像
FROM openjdk:17-jdk-slim
# 作者
MAINTAINER guslegend
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/ai-rag-app.jar /ai-rag-app.jar
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /ai-rag-app.jar $PARAMS"]
- build.sh
# 普通镜像构建,随系统版本构建 amd/arm
docker build -t guslegend/ai-rag-app:1.0 -f ./Dockerfile .
# 兼容 amd、arm 构建镜像
# docker buildx build --load --platform liunx/amd64,linux/arm64 -t guslegend/ai-rag-app:1.2 -f ./Dockerfile . --push