一、环境准备

  • 24G+ 显卡
  • python 运行环境
  • 下载好LLM模型,我这里使用的是 Qwen3-8B
  • Embedding 模型,这里使用的 bge-large-zh-v1.5
  • 还有一份数据集

运行模型 Qwen3-8B

nohup python -m vllm.entrypoints.openai.api_server \--model /code/models/Qwen/Qwen3-8B \--served-model-name qwen3-8b \--max-model-len 8k \--host 0.0.0.0 \--port 6006 \--dtype bfloat16 \--gpu-memory-utilization 0.8 \--enable-auto-tool-choice \--tool-call-parser hermes &

运行Embedding模型 bge-large-zh-v1.5

nohup python -m vllm.entrypoints.openai.api_server \--model /code/models/BAAI/bge-large-zh-v1.5 \--served-model-name bge-large-zh \--host 0.0.0.0 \--port 6007 \--dtype bfloat16 \--gpu-memory-utilization 0.4 \--max-model-len512&

运行Milvus向量数据库(可参考官网https://milvus.io/docs/zh/install_standalone-docker.md)

Download the installation scriptcurl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.shStart the Docker containerbash standalone_embed.sh start

出现下面画面表示Milvus安装完成

数据集准备
我这里是在魔塔社区拉去的三国演义知识问答。地址:https://modelscope.cn/datasets/ssf2024/sanguoyanyiquestion

二、代码编写

首先pom依赖如下

<dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId></dependency><dependency><groupId>io.projectreactor.netty</groupId><artifactId>reactor-netty-http</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- QuestionAnswerAdvisor 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-advisors-vector-store</artifactId></dependency><!--  RetrievalAugmentationAdvisor  依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-rag</artifactId></dependency><!--  Milvus VectorStore 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-milvus</artifactId></dependency><!-- Tika DocumentReader 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-tika-document-reader</artifactId></dependency></dependencies>

配置信息 application.yml

spring:  application:    name: mashangjun-ai-rag  ai:    openai:      chat:        options:          model: qwen3-8b      embedding:base-url: http://192.168.10.102:6007/        options:          model: bge-large-zhbase-url: http://192.168.10.102:6006/      api-key: sk-1234567890abcd    vectorstore:      milvus:        client:          host:192.168.47.130          port:19530          token: root:Milvus        database-name:default        embedding-dimension:1024        collection-name: msj_ai        initialize-schema:trueserver:  port:8081

模型配置

@Configuration@RequiredArgsConstructorpublicclassChatConfig{finalMilvusVectorStore vectorStore;@BeanpublicChatClientchatClient(ChatModel chatModel){returnChatClient.builder(chatModel).defaultSystem("你作为一名专业的AI助手,请根据用户提示信息回答问题。").build();}/**     * 配置 RetrievalAugmentationAdvisor     *     * @return RetrievalAugmentationAdvisor     */@BeanpublicRetrievalAugmentationAdvisorretrievalAugmentationAdvisor(){VectorStoreDocumentRetriever retriever =VectorStoreDocumentRetriever.builder().vectorStore(vectorStore).similarityThreshold(0.5).topK(5).build();ContextualQueryAugmenter augmenter =ContextualQueryAugmenter.builder().allowEmptyContext(true).build();returnRetrievalAugmentationAdvisor.builder().documentRetriever(retriever).queryAugmenter(augmenter).build();}@BeanpublicQuestionAnswerAdvisorquestionAnswerAdvisor(){returnQuestionAnswerAdvisor.builder(vectorStore).searchRequest(SearchRequest.builder().similarityThreshold(0.2d).topK(6).build()).build();}

加载准备好的数据

@Slf4j@Component@RequiredArgsConstructorpublicclassLoadData{finalMilvusVectorStore vectorStore;@Value("${spring.ai.vectorstore.milvus.collection-name}")privateString collectionName;@PostConstructpublicvoidloadData()throwsIOException{        log.info("开始初始化数据:{}", collectionName);Optional<Object> nativeClient = vectorStore.getNativeClient();if(nativeClient.isPresent()){            log.info("Milvus 客户端初始化成功");}else{            log.error("Milvus 客户端初始化失败");return;}MilvusServiceClient client =(MilvusServiceClient) nativeClient.get();R<GetCollectionStatisticsResponse> resp = client.getCollectionStatistics(GetCollectionStatisticsParam.newBuilder().withCollectionName(collectionName).build());if(resp.getStatus()!=R.Status.Success.getCode()){            log.error("Milvus 获取集合统计信息失败:{}", resp.getMessage());return;}long rowCount =newGetCollStatResponseWrapper(resp.getData()).getRowCount();if(rowCount >0){            log.info("集合已存在,跳过初始化数据");return;}// 加载数据到向量数据库ClassPathResource resource =newClassPathResource("train.json");// 读取文件内容String content =newString(resource.getInputStream().readAllBytes());// 拆分文档,写入向量数据库TokenTextSplitter splitter =TokenTextSplitter.builder().withChunkSize(512).withMinChunkSizeChars(200).withKeepSeparator(true).build();var chunks = splitter.split(List.of(newDocument(content)));        vectorStore.add(chunks);}}

聊天接口

@RestController@RequestMapping@RequiredArgsConstructorpublicclassTalkController{finalChatClient chatClient;finalQuestionAnswerAdvisor questionAnswerAdvisor;finalRetrievalAugmentationAdvisor retrievalAugmentationAdvisor;/**     * 聊天     *     * @param question 问题     * @return 回复     */@GetMapping("/talk")publicFlux<String>talk(@RequestParam("question")String question){return chatClient.prompt(question).advisors(questionAnswerAdvisor).stream().content();}}

效果展示

效果展示

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐