精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲高清在线观看一区| 日本久久久久久久久| jjzz黄色片| 日本免费一区二区三区四区| 国产精品乱码一区二三区小蝌蚪| 91久久久亚洲精品| 日本午夜精品理论片a级app发布| 偷拍亚洲精品| 在线综合+亚洲+欧美中文字幕| 欧洲精品在线播放| 午夜视频www| 毛片不卡一区二区| 性视频1819p久久| 国精品人伦一区二区三区蜜桃| 亚洲日本视频在线| 欧美日韩一区二区三区在线看 | 欧美r级电影| 亚洲二区在线播放视频| 欧美三级午夜理伦三级富婆| 98色花堂精品视频在线观看| 亚洲天堂网中文字| 日韩aⅴ视频一区二区三区| 成人av无码一区二区三区| 日韩二区三区在线观看| 97色在线视频| 久久久综合久久| 婷婷久久国产对白刺激五月99| 亚洲乱码av中文一区二区| 免费在线观看日韩av| 日日夜夜综合| 欧美在线一区二区三区| 国产亚洲天堂网| 久草成色在线| 1024成人网| 亚洲一区二区三区四区中文| 六十路在线观看| 2024国产精品| 国内一区二区三区在线视频| 午夜精品无码一区二区三区| 激情欧美日韩一区二区| 国产日韩精品在线| 亚洲av综合一区| 日韩av一区二区三区四区| 全球成人中文在线| 黄色片中文字幕| 香蕉成人久久| caoporm超碰国产精品| 久久99精品视频一区97| 看免费黄色录像| 亚洲成av人片乱码色午夜| 丝袜美腿精品国产二区| 久久婷婷五月综合| blacked蜜桃精品一区| 亚洲女人被黑人巨大进入al| 91精品人妻一区二区| 性人久久久久| 亚洲天堂成人在线视频| 亚洲自拍偷拍图| 日韩国产一区二区| 日韩中文字幕欧美| 欧美a级片免费看| 亚洲激情中文| 久久久久久国产三级电影| 久久精品国产亚洲AV无码麻豆 | 久久久99久久精品欧美| 日本一区二区三不卡| 国产一区二区三区福利| 中国av一区二区三区| 伊人久久青草| 免费不卡av| 欧美日韩在线看| 国产精品视频黄色| 国产精品国产三级在线观看| 日韩欧美激情四射| 久久久久亚洲AV成人无码国产| 希岛爱理av免费一区二区| 在线日韩第一页| 在线免费观看亚洲视频| 亚洲精品一级| 国产精品久久久久久久久久免费 | 亚洲电影一二三区| 求av网址在线观看| 亚洲一区av在线| 成人一区二区三| 国产精品免费精品自在线观看| 亚洲国产91精品在线观看| 丰腴饱满的极品熟妇| 国产高清久久| 26uuu亚洲国产精品| 中文字幕有码无码人妻av蜜桃| 国产在线一区二区| 鲁片一区二区三区| 国产在线激情| 欧美午夜片欧美片在线观看| 亚洲精品www.| 六月丁香久久丫| 日韩在线观看免费全| 成人免费看片98| 美女视频免费一区| 国产欧美一区二区三区另类精品| av二区在线| 亚洲成av人片| 性欧美1819| 欧美18免费视频| 久久中文字幕一区| 国产精品21p| 国产成人一区二区精品非洲| 欧美精品一区二区三区在线四季 | 在线观看中文av| 一区三区在线欧| 欧美黑人性视频| 一区二区三区亚洲视频| 91热门视频在线观看| 久久人妻无码一区二区| 97成人超碰| 日韩精品极品视频免费观看| 欧美精品99久久久| 理论片日本一区| 奇米精品在线| 捆绑调教日本一区二区三区| 日韩精品一区二区三区在线播放| 99久久久无码国产精品不卡| 亚洲主播在线| 狠狠色综合色区| 色yeye免费人成网站在线观看| 欧美精品丝袜中出| 成熟人妻av无码专区| 国产精品久久久免费 | 精品黄色一级片| 97超级碰碰碰| 亚洲av成人精品毛片| 亚洲一区国产视频| a级大片免费看| 婷婷综合社区| 成人欧美一区二区三区在线 | 国产成人a人亚洲精品无码| 国产精品色婷婷| 国产精品一区二区羞羞答答| 国产一区二区电影在线观看| 日韩av免费看| 精品视频三区| 欧美在线制服丝袜| 亚洲色图 激情小说| 美国欧美日韩国产在线播放| 日韩在线观看电影完整版高清免费| 欧美aa在线观看| 亚洲精品中文字幕有码专区| 无码视频一区二区三区| 久久久无码精品亚洲日韩按摩| 国产淫片av片久久久久久| 五月激激激综合网色播| 日韩免费高清在线观看| 国产乱视频在线观看| 91成人网在线| 国产精品麻豆免费版现看视频| 麻豆视频一区二区| 日韩 欧美 自拍| 亚洲一区电影| 97超碰国产精品女人人人爽| 欧美日本韩国一区二区| 欧美视频在线观看一区二区| 国产人与禽zoz0性伦| 国产在线国偷精品产拍免费yy | 国产素人视频在线观看| 日韩一区二区三区四区五区六区| 久久久久久久久久久久久久免费看| 国产91精品一区二区| 黄色片网址在线观看| 亚洲v天堂v手机在线| 国产精品美女在线| a级影片在线观看| 欧美精品一区二区三区高清aⅴ| 全部毛片永久免费看| 欧美激情一二三区| 在线视频一二区| 亚洲电影在线| 日本精品一区二区三区高清 久久| 成人看片网页| 欧美成人免费在线观看| 天天av天天翘| 欧美日韩国产免费一区二区| 精品一级少妇久久久久久久| 久久久久国产精品免费免费搜索| 手机在线视频一区| 日韩亚洲精品在线| 日韩区国产区| 成人h动漫免费观看网站| 日本三级久久久| 18网站在线观看| 亚洲欧美中文日韩v在线观看| 91女人18毛片水多国产| 精品欧美一区二区三区| 永久免费看mv网站入口| 91在线精品一区二区三区| 在线看免费毛片| 先锋影音久久久| 91大学生片黄在线观看| 欧美色图激情小说| 国产综合精品一区二区三区| **日韩最新| 国产成人自拍视频在线观看| 在线网址91| 在线亚洲男人天堂| 五月婷婷丁香六月| 91精品国产综合久久精品图片 | 6080午夜不卡| www.久久精品视频| 亚洲国产综合91精品麻豆| 国产精品18在线| 国产亚洲精品福利| 88av在线播放| 国产乱色国产精品免费视频| 久久99爱视频| 久久性色av| 久草热视频在线观看| 欧美日韩亚洲一区在线观看| 中文字幕一区二区三区精彩视频 | 国产亚洲黄色片| 91超碰成人| 亚洲日本欧美在线| 国产一区二区三区四区五区传媒| 久久精品国产理论片免费| 婷婷综合国产| 97人人模人人爽人人少妇| 六九午夜精品视频| 国产精品69久久| sis001欧美| 欧美孕妇毛茸茸xxxx| 69av成人| 久久久久国产精品免费| 在线观看男女av免费网址| 久久九九全国免费精品观看| av网站在线播放| 色偷偷偷亚洲综合网另类 | 欧美日韩一本| 国产麻豆乱码精品一区二区三区 | 韩国成人在线| 国产99久久久欧美黑人 | 在线观看亚洲一区| 国产精品自拍第一页| 色爱区综合激月婷婷| 国产午夜麻豆影院在线观看| 色呦呦国产精品| 国产又粗又猛又黄视频| 欧美伊人久久久久久午夜久久久久| 丰满少妇xoxoxo视频| 一本色道久久综合亚洲精品按摩| 青青视频在线免费观看| 欧美亚洲日本一区| 在线观看亚洲国产| 8x8x8国产精品| 性一交一乱一乱一视频| 337p日本欧洲亚洲大胆色噜噜| 国产香蕉在线观看| 日韩电影中文字幕在线| 青青久草在线| 中文字幕亚洲情99在线| 韩国av网站在线| 久久久久久久爱| 桃色av一区二区| 国产精品嫩草视频| 精品国产一区二| 国产九色精品| 国产精品免费不| 中文字幕一区综合| 欧美日韩国产色综合一二三四| 欧美精品一区二区三区三州| 久久九九国产| 17c国产在线| 99视频有精品| 五月天婷婷丁香网| 亚洲精品乱码久久久久| 自拍偷拍欧美亚洲| 欧美日韩一区二区欧美激情| www.精品久久| 亚洲欧美一区二区三区久久| 日本免费视频在线观看| 美女性感视频久久久| 国产精品一区二区日韩| 国产精品久久久久久网站| 亚洲va欧美va人人爽成人影院| 久久久久久99| 亚洲一区二区三区无吗| 人人妻人人添人人爽欧美一区| 蜜臀av性久久久久蜜臀aⅴ| 91人人澡人人爽| 国产日韩欧美电影| 国产亚洲欧美精品久久久久久| 欧美性少妇18aaaa视频| 国产免费的av| 亚洲性69xxxbbb| 欧美videossex| 国产精品欧美日韩一区二区| 99热这里只有精品首页 | 影音先锋国产精品| 男女男精品视频站| av一区二区三区| 日韩成人短视频| 在线免费观看日韩欧美| 亚洲精品福利网站| 日韩在线观看视频免费| 免费在线小视频| 成人xxxxx色| 手机在线电影一区| 国产一区亚洲二区三区| 成人激情小说网站| 日韩在线一卡二卡| 色哟哟国产精品免费观看| 女人18毛片水真多18精品| 久久久精品国产| 成人mm视频在线观看| 久久国产主播精品| 狠狠色综合网| 99精品视频国产| 国产精品久久久爽爽爽麻豆色哟哟 | 天天综合精品| 天天视频天天爽| 久久久久国产免费免费| 中文字幕亚洲精品在线| 精品国产sm最大网站免费看| av免费网站在线观看| 国产美女精彩久久| 欧美色图在线播放| 日本爱爱免费视频| 久久精品一二三| 在线天堂中文字幕| 亚洲精品成a人在线观看| 久久香蕉av| av一区二区在线看| 欧美在线1区| 韩国三级与黑人| 亚洲欧美日韩国产综合| 91tv国产成人福利| 色悠悠久久久久| 91麻豆精品一二三区在线| 天天综合色天天综合色hd| 石原莉奈在线亚洲二区| 色婷婷av777| 在线免费观看一区| av电影在线观看网址| 国产啪精品视频| 亚洲欧洲中文字幕| 国产乱淫av麻豆国产免费| 亚洲第一av色| 天天干,天天操,天天射| 91精品国产九九九久久久亚洲| 欧美亚洲色图校园春色| 久久精品免费一区二区| 久久亚区不卡日本| 日本中文字幕久久| 在线午夜精品自拍| 爱情电影网av一区二区| 男人天堂新网址| av激情亚洲男人天堂| 国产在线观看黄色| 亚洲视频axxx| 亚洲青青一区| 人人妻人人澡人人爽欧美一区双| 成人av免费观看| 久久久久久久久久成人| 中文字幕精品在线视频| 欧洲大片精品免费永久看nba| 97碰在线视频| 久久久欧美精品sm网站| 又骚又黄的视频| 久精品免费视频| 日韩动漫一区| av污在线观看| 一区二区三区不卡视频| 五月婷婷综合久久| 国产精品久久久亚洲| 欧美一区免费| 国产精品扒开腿做爽爽| 欧美绝品在线观看成人午夜影视| 欧美理论片在线播放| 欧美精品一区在线发布| 老汉av免费一区二区三区| 久久这里只有精品国产| 亚洲人成网在线播放| 国产精品视频首页| av网站在线观看不卡| 国产精品久久久久久久久快鸭| 成人黄色在线观看视频| 日韩免费观看在线观看| 亚洲影视一区| 一级黄色片大全| 日韩视频在线一区二区| 原纱央莉成人av片| 狠狠精品干练久久久无码中文字幕| 91麻豆福利精品推荐| 国产精品免费无遮挡| 91产国在线观看动作片喷水| 欧美a级片视频| 亚洲av无码一区二区二三区| 91精品国产欧美一区二区18| 成人性生活av| 免费看毛片的网址| 亚洲男人的天堂网| 成年人在线观看| 精品国产一区二区三区麻豆免费观看完整版 |