精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring AI 入門與DeepSeek API融合實戰

人工智能
Spring AI 使用Deepseek大模型對話的簡單示例就完成了,如果使用了Ollama私有化部署了大模型也可以使用上面的流程,或者是引入Ollama的依賴。

Spring AI 作為統一的大模型接入框架,其Model API為開發者提供了多模型適配能力。無論是OpenAI、DeepSeek、Moonshot AI(月之暗面)、Perplexity AI、Google VertexAI Gemini 等若干主流云服務商模型,還是支持Ollama私有化部署的本地模型,均可通過標準化接口實現無縫集成。

本文將介紹基于Spring AI框架,分別調用云端DeepSeek API的完整對話實現方式,話不多說,搞起來。

引入依賴

第一步,先引入依賴:Springboot 3.4.5 、 Spring AI 1.0.0-M7 。因為deepseek支持open ai的標準接口,所以這里引入 open ai的依賴即可。

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.5</version>
        <relativePath/>
    </parent>
    <groupId>site.qxkd</groupId>
    <artifactId>chat-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>chat-client</name>
    <description>chat-client</description>
    <properties>
        <java.version>17</java.version>
        <spring-ai.version>1.0.0-M7</spring-ai.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-openai</artifactId>
        </dependency>

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

配置文件

這只是列舉一些簡單配置文件,實際上配置還是挺多的,感興趣可以去官網看一下

spring.application.name=chat-client

# 大模型相關依賴
spring.ai.openai.base-url=https://api.siliconflow.cn
spring.ai.openai.api-key=sk-你的秘鑰
#spring.ai.openai.chat.options.model=deepseek-ai/DeepSeek-V3
spring.ai.openai.chat.options.model=deepseek-ai/DeepSeek-R1

測試

上面一切準備好之后,寫兩個接口測試一下,一個是一次性輸出結果的接口,一個是流式輸出的接口。

RestController
@RequestMapping("/deepseek")
publicclass DeepseekController {

    @Autowired
    private OpenAiChatModel chatModel;

    @GetMapping("/ai/generate")
    public Map<String , String> generate(@RequestParam(value = "message") String message) {
        String content = chatModel.call(message);
        return Map.of("generation", content);
    }

    /**
     * 生成流式結果
     * @param message
     * @return
     */
    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        returnthis.chatModel.stream(prompt);
    }
}

先測試一次性輸出結果的接口,瀏覽器訪問http://localhost:8080/deepseek/ai/generate?message=你是誰 ,會輸出如下結果:

圖片圖片

下面再來測試一下流式輸出到接口,為了實現流式輸出的效果,我讓deepseek給我寫了一個網頁,簡單修改了一下,達到了如下圖中的效果。

圖片圖片

流式輸出返回的一段JSON是這樣的。

{
 "result": {
"metadata": {
   "finishReason": "",
   "contentFilters": [],
   "empty": true
  },
"output": {
   "messageType": "ASSISTANT",
   "metadata": {
    "refusal": "",
    "finishReason": "",
    "index": 0,
    "id": "019684b265266dbe29ab56f75eaa75cd",
    "role": "ASSISTANT",
    "messageType": "ASSISTANT"
   },
   "toolCalls": [],
   "media": [],
   "text": "DeepSeek)公司開發的智能助手"
  }
 },
"metadata": {
"id": "019684b265266dbe29ab56f75eaa75cd",
"model": "deepseek-ai/DeepSeek-R1",
"rateLimit": {
   "requestsRemaining": 0,
   "requestsLimit": 0,
   "tokensRemaining": 0,
   "tokensReset": "PT0S",
   "requestsReset": "PT0S",
   "tokensLimit": 0
  },
"usage": {
   "promptTokens": 6,
   "completionTokens": 64,
   "totalTokens": 70,
   "nativeUsage": {
    "completion_tokens": 64,
    "prompt_tokens": 6,
    "total_tokens": 70,
    "completion_tokens_details": {
     "reasoning_tokens": 38
    }
   }
  },
"promptMetadata": [],
"empty": false
 },
"results": [{
"metadata": {
   "finishReason": "",
   "contentFilters": [],
   "empty": true
  },
"output": {
   "messageType": "ASSISTANT",
   "metadata": {
    "refusal": "",
    "finishReason": "",
    "index": 0,
    "id": "019684b265266dbe29ab56f75eaa75cd",
    "role": "ASSISTANT",
    "messageType": "ASSISTANT"
   },
   "toolCalls": [],
   "media": [],
   "text": "DeepSeek)公司開發的智能助手"
  }
 }]
}

至此,一個簡單的Spring AI對話就完成了。細心的同學可能會發現,這也就只能單輪對話,沒什么用呀,要連續對話才行。別急,下面就演示一下連續對話的demo。

連續對話

想要連續對話需要3個相關接口和API:

  • ChatMemory : 大模型(LLM)是無狀態的,這意味著它們不會保留有關以前交互的信息。在多個交互中維護上下文或狀態時,這就變成了一種限制。為了解決這個問題,Spring AI 提供了一個存儲和檢索與大模型多次對話信息的接口 ChatMemory
  • ChatClient : ChatClient提供了一個流式API(fluent API),用于與AI模型進行通信,它同時支持同步和流式兩種編程模型。該流式API提供了一系列方法,用于逐步構建**提示詞(Prompt)**的各個組成部分,這些提示詞將作為輸入傳遞給AI模型。
  • Advisors APIAdvisors API為開發者提供了一種靈活而強大的方式,用于在 Spring 應用程序中攔截、修改和增強 AI 驅動的交互。它的核心優勢包括:封裝常見的生成式 AI 模式,轉換發送給大語言模型(LLMs)的數據及處理其返回結果,以及實現跨不同模型和用例的可移植性。

話不多說,上代碼。

  • 先注入 ChatClient 和 ChatMemory 對象 本文使用InMemoryChatMemory將對話記錄存放在內存中,如果想實現將對話記錄存放在數據庫可以考慮實現ChatMemory
@Configuration
publicclass ChatConfig {

    @Bean
    public ChatClient chatClient(OpenAiChatModel openAiChatModel) {
        ChatClient chatClient = ChatClient.builder(openAiChatModel)
                .defaultAdvisors(new MessageChatMemoryAdvisor(chatMemory()))  //  設置默認的MemoryAdvisor ,將對話記錄存放在內存中
                .build();
        return chatClient;
    }


    @Bean
    public ChatMemory chatMemory(){
        returnnew InMemoryChatMemory();
    }
}
  • 測試 測試使用流式輸出,調用接口時需要傳一個chatId ,這樣才能根據chatId到內存中查詢相關對話信息。
@Autowired
private ChatClient chatClient;

@GetMapping("/ai/chatContext")
public Flux<ChatResponse> chatContext(@RequestParam(value = "message") String message , String chatId) {

    Flux<ChatResponse> chatResponseFlux = chatClient.prompt()
            //連續對話的key
            .advisors(advisor -> advisor.param(AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)
                    .param(AbstractChatMemoryAdvisor.CHAT_MEMORY_RETRIEVE_SIZE_KEY, 100))
            .user(message).stream().chatResponse();

    return chatResponseFlux;
}

修改一下之前的聊天界面代碼進行測試:

圖片圖片

至此,Spring AI 使用Deepseek大模型對話的簡單示例就完成了,如果使用了Ollama私有化部署了大模型也可以使用上面的流程,或者是引入Ollama的依賴。

責任編輯:武曉燕 來源: 索碼理
相關推薦

2025-01-06 09:43:36

SpringAI?模型

2025-03-27 09:34:42

2025-11-03 07:47:12

2025-05-16 07:50:58

Spring AIMCPSSE

2025-02-19 12:00:00

SpringBootDeepSeekAI

2025-03-06 07:48:02

2021-10-14 13:57:58

物聯網人工智能數據

2024-05-31 08:12:19

2021-11-04 17:23:25

AI人工智能IOT

2021-02-09 20:45:16

AIOOPO

2025-04-16 01:00:00

API工具AI

2024-03-01 14:34:19

5G人工智能AI

2025-02-10 00:00:00

DeepSeek技術人工智能

2025-02-17 00:25:00

SpringAIOpenAI

2025-02-19 16:00:00

SpringBootDeepSeek智能

2025-01-02 14:10:41

2025-10-13 07:27:37

springURL項目

2025-02-24 10:07:10

點贊
收藏

51CTO技術棧公眾號

久久一区亚洲| 欧美爱爱网站| 亚洲免费观看高清完整版在线观看熊 | 免费黄频在线观看| av影视在线看| 国产蜜臀97一区二区三区 | 成人在线视频你懂的| 欧美特级www| 色乱码一区二区三区熟女| 欧美熟女一区二区| 日韩va亚洲va欧美va久久| 欧美成人黑人xx视频免费观看| 欧美精品欧美极品欧美激情| 在线观看亚洲精品福利片| 亚洲福利视频三区| 手机成人av在线| 欧美日韩视频精品二区| 国产成人精品一区二 | **精品中文字幕一区二区三区| 亚洲一区二区在线视频| 亚洲一卡二卡三卡四卡无卡网站在线看| 午夜精品久久久久久久爽 | 亚洲一区二区福利视频| 亚洲性受xxx喷奶水| 亚洲欧美激情一区二区| 欧美系列一区| 亚洲精品成人电影| 久久爱www久久做| 日本伊人精品一区二区三区介绍 | 激情在线视频| 成人免费视频一区| 91精品在线看| 中文字幕一级片| 久久精品官网| 欧美亚洲国产成人精品| 久久久久久久久艹| 一区二区日韩欧美| 中文字幕在线看视频国产欧美| 少妇光屁股影院| 黄色欧美网站| 欧美变态tickle挠乳网站| 亚洲精品第三页| 农村妇女一区二区| 在线精品观看国产| 国产熟人av一二三区| 天堂中文在线播放| 欧美日韩日本国产| 欧美一级在线看| 精品丝袜在线| 欧美日韩激情美女| 波多野结衣之无限发射| av手机在线观看| 亚洲不卡av一区二区三区| 亚洲爆乳无码精品aaa片蜜桃| 欧美尤物美女在线| 综合激情成人伊人| 一级黄色片播放| 色呦呦在线播放| 亚洲国产日韩一区二区| 久久亚洲中文字幕无码| 黄色在线观看www| 狠狠综合久久av一区二区小说| 分分操这里只有精品| 白浆视频在线观看| 欧美日韩美女在线观看| 黄色三级视频片| 岛国一区二区| 欧美一区二区视频在线观看| 亚洲欧美手机在线| 91综合精品国产丝袜长腿久久| 欧美v亚洲v综合ⅴ国产v| 国产免费无码一区二区| 欧美丝袜美腿| 亚洲性生活视频| 亚洲精品自拍视频在线观看| 91精品二区| 久久久久久久久久久免费| 欧美精品亚洲精品日韩精品| 校园激情久久| 国产免费一区二区三区在线观看| 国产精品久久婷婷| 成a人片国产精品| 日韩欧美精品一区二区| 麻豆传媒在线观看| 亚洲第一激情av| 色诱视频在线观看| 久久69av| 亚洲嫩模很污视频| 日韩在线一卡二卡| 99国内精品| 国产精品视频一区二区三区四| 99久久亚洲精品日本无码| www.视频一区| 亚洲精品tv久久久久久久久| 1区2区在线观看| 色综合久久天天| 992kp免费看片| 香蕉久久精品| 裸体女人亚洲精品一区| 国产成人在线视频观看| 激情综合色播激情啊| 久久99导航| 黄色在线观看网站| 色女孩综合影院| 91人人澡人人爽| 日韩欧美大片| 国产69精品久久久久久| 国产精品毛片一区视频播| 91网站最新网址| 永久免费在线看片视频| 欧美xx视频| 亚洲高清一二三区| 午夜精品福利在线视频| 久久精品亚洲一区二区| 高清视频一区| 超碰个人在线| 欧美日韩久久一区二区| 亚洲观看黄色网| 欧美激情在线| 91精品久久久久久久久不口人| 亚洲人视频在线观看| 一区二区三区四区五区视频在线观看| 成人一区二区三| 日韩av资源网| 久久久视频免费观看| 夜夜躁很很躁日日躁麻豆| 91麻豆精品视频| 久艹在线免费观看| 日韩三级av高清片| 久久香蕉国产线看观看网| 国产精品无码粉嫩小泬| 久久免费国产精品| 欧美日韩一道本| 久久99精品国产自在现线| 免费91在线视频| 国产一区二区小视频| 国产农村妇女毛片精品久久麻豆 | 丝袜美腿亚洲综合| 免费成人深夜夜行视频| 精精国产xxxx视频在线野外| 精品99一区二区| 国产一级二级三级视频| 国产美女在线精品| 懂色av粉嫩av蜜臀av| 国产成年精品| 欧美成人免费播放| 性网爆门事件集合av| 亚洲精品网站在线观看| 精品人妻一区二区三| 综合激情在线| 91久久国产综合久久蜜月精品| 黄色成年人视频在线观看| 欧美精品久久天天躁| 天天操夜夜操av| 国产尤物一区二区在线| 今天免费高清在线观看国语| 国产美女精品视频免费播放软件 | 男女羞羞在线观看| 日韩高清免费在线| 人人爽人人爽人人片av| 国产亚洲成年网址在线观看| 免费看a级黄色片| 日本不卡高清| 91免费版黄色| 高h视频在线播放| 日韩成人在线免费观看| av片免费观看| 一区在线观看免费| 免费黄色在线播放| 国产一区二区三区成人欧美日韩在线观看 | 亚洲精品久久久久久久蜜桃臀| 成人av资源网址| 97av在线视频免费播放| 国产在线超碰| 91精品久久久久久蜜臀| 黄页网站免费观看| 91蜜桃在线观看| 五月天av在线播放| 国内精品久久久久久久影视蜜臀 | 99日在线视频| 亚洲视频福利| 色播五月综合| 亚洲国产综合在线观看| 久久久久久久国产精品| 国产一级片在线| 日韩欧美亚洲国产另类| 久久国产视频播放| 国产精品久久久一区麻豆最新章节| 国产高清av片| 视频在线观看91| 成人高清dvd| 狠狠色丁香婷婷综合影院| 92看片淫黄大片看国产片| 成人av免费电影网站| 久久久国产视频| 天天躁日日躁狠狠躁喷水| 欧美揉bbbbb揉bbbbb| 国产一卡二卡在线播放| 国产日韩精品一区二区三区| 国产成人av免费观看| 首页亚洲欧美制服丝腿| 免费网站在线观看视频| 欧美中文一区二区| 精品国产乱码久久久久久郑州公司 | 一区二区三区国产| 久久精品—区二区三区舞蹈| 国产成人综合网| 日韩一级理论片| 亚洲国产高清一区| 天天综合五月天| 成人vr资源| 美女被啪啪一区二区| 视频亚洲一区二区| 91精品国产自产在线| 欧美男女交配| 国内精品在线一区| 在线网址91| 色琪琪综合男人的天堂aⅴ视频| 午夜视频免费看| 精品国产免费人成电影在线观看四季 | av中文字幕在线| 亚洲精品久久久久久久久久久久| 国产成人精品毛片| 欧美日本在线视频| 自拍偷拍第八页| 色伊人久久综合中文字幕| 天天操天天射天天爽| 亚洲天堂2014| 二区三区四区视频| 国产精品免费网站在线观看| 日韩精品无码一区二区三区久久久 | 国产精品久久久| 中文字幕在线官网| 91av视频在线| 国产精品蜜芽在线观看| 欧美精品videossex88| bestiality新另类大全| 久久久黄色av| а天堂中文在线官网| 中文字幕综合一区| av成人手机在线| 日韩在线小视频| av大片在线看| 色哟哟入口国产精品| 在线视频1区2区| 色婷婷综合成人| 韩国av网站在线| 久久中文久久字幕| 羞羞污视频在线观看| 欧美大片网站在线观看| 影音先锋中文在线视频| 久久91亚洲精品中文字幕奶水| 成人在线影视| 欧美高跟鞋交xxxxxhd| 国精一区二区三区| 91精品国产99| 日韩大片欧美大片| 国产精品美女www| 国产 日韩 欧美| 91免费看网站| 日韩大胆成人| 日本一区视频在线播放| 日韩一区二区在线免费| 一区二区国产日产| 国产精品v日韩精品v欧美精品网站 | 色综合咪咪久久| 在线观看亚洲一区二区| 91精品国产综合久久婷婷香蕉| 国产成人三级在线播放| 欧美不卡在线视频| 久久电影中文字幕| www.午夜精品| 欧美挠脚心视频网站| 国产精品久久久久99| av网站免费在线观看| 欧美激情一区二区三区在线视频观看| 黄色羞羞视频在线观看| 51视频国产精品一区二区| 高清成人在线| 亚洲精品欧美极品| 欧美日韩一本| 一区二区精品在线| 精品99视频| 成人午夜激情av| 国产精品正在播放| 日本japanese极品少妇| 国产精品网站在线观看| 久久久久久久黄色| 欧洲色大大久久| 午夜久久久久久久久久| 亚洲无亚洲人成网站77777| 二区三区在线观看| 欧美有码在线观看| 国产美女亚洲精品7777| 鲁片一区二区三区| 一本一本久久a久久综合精品| 亚欧无线一线二线三线区别| 麻豆中文一区二区| 免费黄色三级网站| 亚洲欧洲日韩综合一区二区| 99久热在线精品996热是什么| 4438成人网| 狠狠狠综合7777久夜色撩人| 欧美大片欧美激情性色a∨久久| 怡红院成人在线| 国产一区二区三区高清视频| 久久亚洲精品中文字幕蜜潮电影| 国产毛片视频网站| 国产精品资源在线观看| 亚洲精品成人av久久| 黄色一区二区三区| 亚洲黄色片视频| 日韩中文字幕精品| 韩日成人影院| 精品久久蜜桃| 欧美国产免费| 91高清国产视频| 国产视频一区二区在线| 日韩 欧美 综合| 欧美大片日本大片免费观看| 欧美jizzhd69巨大| 国产精品国产亚洲伊人久久| 欧美日韩一区二区三区在线电影 | 老熟女高潮一区二区三区| 国产欧美精品一区二区色综合朱莉| 日韩精品一区二区三| 日韩免费看网站| a级影片在线观看| 成人国产在线视频| 日韩理论片av| 亚洲激情在线观看视频| 国产亚洲欧洲997久久综合| 国产69精品久久久久久久久久| 欧美精品一区视频| 国产探花视频在线观看| 成人情视频高清免费观看电影| 午夜精品999| 久久久久久国产精品日本| 亚洲欧洲精品成人久久奇米网| 国模私拍一区二区| 中文字幕av一区二区| 懂色aⅴ精品一区二区三区| 色播亚洲视频在线观看| 日韩精品色哟哟| 91视频免费在观看| 欧美色综合久久| 日本中文字幕在线播放| 91精品久久久久久久久久入口| 久久美女视频| 精品综合久久久久| 亚洲精品视频一区二区| 性做久久久久久久久久| 色与欲影视天天看综合网| 国产精品一线| 国产白丝袜美女久久久久| 91色porny在线视频| 人妻 日韩精品 中文字幕| 亚洲日韩欧美视频| 成人在线视频免费| 最新黄色av网站| 国产91精品免费| 国产女同在线观看| 一本色道久久88亚洲综合88| 电影在线观看一区二区| 五月天色婷婷综合| 高清国产一区二区| 五月天婷婷久久| 在线成人免费网站| 国产成人免费视频网站视频社区| 日本香蕉视频在线观看| www欧美成人18+| 97成人免费视频| 久久久久久久久久久免费 | 椎名由奈jux491在线播放 | 熟女丰满老熟女熟妇| 欧亚一区二区三区| 91在线中字| 精品视频高清无人区区二区三区| 天堂在线亚洲视频| 一区视频免费观看| 亚洲精品国产精品国产自| 成人一级视频| 色欲色香天天天综合网www| 国产喂奶挤奶一区二区三区| 国产精品人人妻人人爽| 国内精品久久久久久| 日本欧美视频| 第一页在线视频| 欧美午夜不卡视频| xxx.xxx欧美| 亚洲精品一区二区毛豆| 国产成人福利片| 日韩欧美国产另类| 欧美激情18p| 欧洲激情视频| 深田咏美中文字幕| 欧美日韩不卡一区| 小视频免费在线观看| 四虎免费在线观看视频| 久久―日本道色综合久久|