▼最近直播超级多,预约保你有收获

尽管 Python 长期主导 AI 大模型应用开发领域,但 Java 并未熄火!Spring AI 来了,正式告别实验期,迈向广泛应用新阶段!这意味着 Spring 生态体系的广大开发者,迎来 AI 大模型应用开发的新里程。

—1—
Spring AI 开发框架设计理念

—2—
Spring AI 应用开发案例
package org.springframework.ai.openai.samples.helloworld.simple;import org.springframework.ai.chat.ChatClient;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.Map;public class SimpleAiController {private final ChatClient chatClient;public SimpleAiController(ChatClient chatClient) {this.chatClient = chatClient;}public Map<String, String> completion( String message) {return Map.of("generation", chatClient.call(message));}}
package org.springframework.samples.ai.azure.openai.rag;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.ai.client.AiClient;import org.springframework.ai.client.AiResponse;import org.springframework.ai.client.Generation;import org.springframework.ai.document.Document;import org.springframework.ai.embedding.EmbeddingClient;import org.springframework.ai.loader.impl.JsonLoader;import org.springframework.ai.prompt.Prompt;import org.springframework.ai.prompt.SystemPromptTemplate;import org.springframework.ai.prompt.messages.Message;import org.springframework.ai.prompt.messages.UserMessage;import org.springframework.ai.retriever.impl.VectorStoreRetriever;import org.springframework.ai.vectorstore.VectorStore;import org.springframework.ai.vectorstore.impl.InMemoryVectorStore;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.io.Resource;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class RagService {private static final Logger logger = LoggerFactory.getLogger(RagService.class);@Value("classpath:/data/bikes.json")private Resource bikesResource;@Value("classpath:/prompts/system-qa.st")private Resource systemBikePrompt;private final AiClient aiClient;private final EmbeddingClient embeddingClient;public RagService(AiClient aiClient, EmbeddingClient embeddingClient) {this.aiClient = aiClient;this.embeddingClient = embeddingClient;}public Generation retrieve(String message) {// Step 1 - Load JSON document as Documentslogger.info("Loading JSON as Documents");JsonLoader jsonLoader = new JsonLoader(bikesResource,"name", "price", "shortDescription", "description");List<Document> documents = jsonLoader.load();logger.info("Loading JSON as Documents");// Step 2 - Create embeddings and save to vector storelogger.info("Creating Embeddings...");VectorStore vectorStore = new InMemoryVectorStore(embeddingClient);vectorStore.add(documents);logger.info("Embeddings created.");// Step 3 retrieve related documents to queryVectorStoreRetriever vectorStoreRetriever = new VectorStoreRetriever(vectorStore);logger.info("Retrieving relevant documents");List<Document> similarDocuments = vectorStoreRetriever.retrieve(message);logger.info(String.format("Found %s relevant documents.", similarDocuments.size()));// Step 4 Embed documents into SystemMessage with the `system-qa.st` prompt templateMessage systemMessage = getSystemMessage(similarDocuments);UserMessage userMessage = new UserMessage(message);// Step 4 - Ask the AI modellogger.info("Asking AI model to reply to question.");Prompt prompt = new Prompt(List.of(systemMessage, userMessage));logger.info(prompt.toString());AiResponse response = aiClient.generate(prompt);logger.info("AI responded.");logger.info(response.getGeneration().toString());return response.getGeneration();}private Message getSystemMessage(List<Document> similarDocuments) {String documents = similarDocuments.stream().map(entry -> entry.getContent()).collect(Collectors.joining("\n"));SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemBikePrompt);Message systemMessage = systemPromptTemplate.createMessage(Map.of("documents", documents));return systemMessage;}}

—3—
!送!AI大模型开发直播课程
立即扫码,即可免费预约
进入直播,大佬直播在线答疑!


本期名额有限
高度起始于速度(手慢无!!)
—4—
!!再送!!《AI 大模型技术知识图谱》


第二步:扫码后,点击以下关注按钮,就可关注我。


END
原文作者:玄姐聊AGI;如有侵权,请联系管理员删除。