最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java調(diào)用基于Ollama本地大模型的實(shí)現(xiàn)

 更新時間:2025年03月25日 10:47:45   作者:奔波兒灞愛霸波爾奔  
本文主要介紹了Java調(diào)用基于Ollama本地大模型的實(shí)現(xiàn),實(shí)現(xiàn)文本生成、問答、文本分類等功能,開發(fā)者可以輕松配置和調(diào)用模型,具有一定的參考價值,感興趣的可以了解一下

引言

隨著人工智能技術(shù)的飛速發(fā)展,大型語言模型(Large Language Models, LLMs)已成為自然語言處理領(lǐng)域的研究熱點(diǎn)。Ollama是一個強(qiáng)大的工具,它使得在本地部署和管理這些大型語言模型變得更加便捷。本文檔旨在指導(dǎo)Java開發(fā)者如何在Java應(yīng)用程序中調(diào)用基于Ollama部署的本地大型語言模型,實(shí)現(xiàn)文本生成、問答、文本分類等多種自然語言處理任務(wù)。

環(huán)境準(zhǔn)備

  • 安裝Ollama和模型加載: 該內(nèi)容已經(jīng)在之間文檔進(jìn)行說明,這里不再贅述,讀者可以查看之前的文檔內(nèi)容。。
  • Java環(huán)境: java我們現(xiàn)在java 17進(jìn)行開發(fā),因?yàn)槲覀円蕾嚨膇o.springboot.ai,從查看資料的結(jié)果看,需要基于java17或者以上才能進(jìn)行開發(fā),不然可能在程序啟動的時候存在如下報錯

OllamaChatClient.class
類文件具有錯誤的版本 61.0, 應(yīng)為 52.0
請刪除該文件或確保該文件位于正確的類路徑子目錄中。

Java調(diào)用Ollama

我們通過基于一個SpringBoot和Maven方式并且通過接口展示的方式進(jìn)行舉例,我們程序代碼的結(jié)果如下

在這里插入圖片描述

1. pom.xml設(shè)置

我們設(shè)置我們的pom.xml中的內(nèi)容如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.example</groupId>
    <artifactId>testAI</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springboot.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>6.1.6</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

2. application.properties設(shè)置

我們設(shè)置我們的application.properties中的內(nèi)容如下

server.port=8099
spring.ai.ollama.base-url=http://10.31.128.110:9999
spring.ai.ollama.chat.options.model=Qwen2-7b:latest

其中上述的內(nèi)容中spring.ai.ollama.base-url為你本地使用ollama搭建的大模型地址,spring.ai.ollama.chat.options.model則是你在文檔搭建的大模型名稱

3. application啟動設(shè)置

我們設(shè)置testAiApplication主程序啟動的代碼如下

package org.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;

@EnableAsync
@SpringBootApplication
public class testAiApplication {
    public static void main(String[] args) {
        SpringApplication.run(testAiApplication.class, args);
    }
}

4. 接口暴露

我們編寫aiController暴露對應(yīng)的接口內(nèi)容

package org.example.controller;

import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class aiController {

    @Autowired
    @Qualifier("ollamaChatClient")
    private OllamaChatClient  ollamaChatClient;
    @GetMapping("/ollama/chat/v1")
    public String ollamaChat(@RequestParam String msg) {
        return this.ollamaChatClient.call(msg);
    }
}

5. 程序啟動

編寫好對應(yīng)的代碼以后,我們可以啟動我們的程序

2024-09-18T15:10:34.292+08:00 INFO 16896 — [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8099 (http) with context path ‘’
2024-09-18T15:10:34.328+08:00 INFO 16896 — [ restartedMain] org.example.testAiApplication : Started testAiApplication in 7.331 seconds (process running for 8.44)

6. 測試驗(yàn)證

通過上述代碼我們可以知道,我們暴露的接口是/ollama/chat/v1,我們打開瀏覽器,測試對應(yīng)的接口信息,調(diào)用接口如下:http://127.0.0.1:8099/ollama/chat/v1?msg=你是誰
我們可以得到大模型返回的結(jié)果如下:

在這里插入圖片描述

注意事項(xiàng)

  • 安全性: 考慮到API可能暴露在公網(wǎng),務(wù)必采取適當(dāng)?shù)陌踩胧?,如使用HTTPS、API密鑰驗(yàn)證等。
  • 資源管理: 大型語言模型運(yùn)行時消耗大量計算資源。監(jiān)控和限制并發(fā)請求,避免資源耗盡。
  • 錯誤處理: 實(shí)際應(yīng)用中要增加異常處理邏輯,確保程序健壯性。

結(jié)語

通過上述步驟,你可以在Java應(yīng)用程序中無縫集成基于Ollama的本地大型語言模型,為你的項(xiàng)目增添強(qiáng)大的自然語言處理能力。隨著Ollama及其支持的模型不斷更新,持續(xù)探索和優(yōu)化模型調(diào)用策略,將能進(jìn)一步提升應(yīng)用性能和用戶體驗(yàn)。

到此這篇關(guān)于Java調(diào)用基于Ollama本地大模型的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java調(diào)用Ollama本地大模型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring配置多個數(shù)據(jù)源并實(shí)現(xiàn)動態(tài)切換示例

    Spring配置多個數(shù)據(jù)源并實(shí)現(xiàn)動態(tài)切換示例

    本篇文章主要介紹了Spring配置多個數(shù)據(jù)源并實(shí)現(xiàn)動態(tài)切換示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java8中的Stream流式操作教程之王者歸來

    Java8中的Stream流式操作教程之王者歸來

    這篇文章主要給大家介紹了關(guān)于Java8中Stream流式操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 基于Integer值判斷是否相等的問題

    基于Integer值判斷是否相等的問題

    這篇文章主要介紹了基于Integer值判斷是否相等的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 基于SpringBoot實(shí)現(xiàn)網(wǎng)絡(luò)限速功能

    基于SpringBoot實(shí)現(xiàn)網(wǎng)絡(luò)限速功能

    為了實(shí)現(xiàn)網(wǎng)絡(luò)限速,業(yè)內(nèi)有很多行之有效的策略,每種都有其獨(dú)特的優(yōu)勢和適用場景,接下來我就給大家介紹 4 種常見的限速策略,大家可以根據(jù)需要自行選擇
    2026-04-04
  • Java利用序列化實(shí)現(xiàn)對象深度clone的方法

    Java利用序列化實(shí)現(xiàn)對象深度clone的方法

    這篇文章主要介紹了Java利用序列化實(shí)現(xiàn)對象深度clone的方法,實(shí)例分析了java序列化及對象克隆的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Java JVM類加載器知識總結(jié)

    Java JVM類加載器知識總結(jié)

    本文介紹Java虛擬機(jī)(JVM)中的類加載器,包括類加載器的概述、作用、基本流程及JVM類加載器的類型和層次,文章探討了類加載的實(shí)際應(yīng)用和優(yōu)化,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • java 中動態(tài)代理(JDK,cglib)實(shí)例代碼

    java 中動態(tài)代理(JDK,cglib)實(shí)例代碼

    這篇文章主要介紹了java 中動態(tài)代理,這里介紹了JDK 動態(tài)代理與 cglib 動態(tài)代理的相關(guān)資料
    2017-04-04
  • Java自定義異常與異常使用的最佳方式

    Java自定義異常與異常使用的最佳方式

    這篇文章主要介紹了Java自定義異常與異常使用的最佳方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • jdbc結(jié)合dpcp連接池的封裝實(shí)例

    jdbc結(jié)合dpcp連接池的封裝實(shí)例

    下面小編就為大家?guī)硪黄猨dbc結(jié)合dpcp連接池的封裝實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Spring boot怎么整合Mybatis

    Spring boot怎么整合Mybatis

    spring boot的簡配置方便的開發(fā),下面通過本文給大家分享Spring boot整合Mybatis的方法,需要的朋友參考下
    2017-07-07

最新評論

西青区| 綦江县| 万荣县| 通城县| 靖州| 孝昌县| 崇左市| 磐安县| 上饶市| 潮安县| 凤山县| 江永县| 芦溪县| 阳高县| 贡山| 张掖市| 余庆县| 砚山县| 称多县| 井冈山市| 太和县| 休宁县| 紫云| 台前县| 尉犁县| 河南省| 商南县| 宜阳县| 永平县| 翁牛特旗| 山阴县| 郴州市| 寿阳县| 平塘县| 肥西县| 延长县| 左云县| 锡林郭勒盟| 繁昌县| 枝江市| 巫山县|