增强检索知识库系统4

第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

云服务器部署上线

这两个名字要相同

  • 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

构建你的镜像 https://hub.docker.com/repository/create

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值