国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring AI 使用本地 Ollama Embeddings

這篇具有很好參考價值的文章主要介紹了Spring AI 使用本地 Ollama Embeddings。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

使用 OpenAI 的 Embeddings 接口是有費(fèi)用的,如果想對大量文檔進(jìn)行測試,使用本地部署的 Embeddings 就能省去大量的費(fèi)用,所以我們嘗試使用本地的 Ollama Embeddings。

首先本地安裝 Ollama: https://ollama.com/download

即使你電腦沒有性能很強(qiáng)的顯卡,僅僅依靠 CPU 也能運(yùn)行一些參數(shù)量較小的模型。ollama 中下載量最多的是 llama2 模型,但是這個模型對中文支持不太好,我們可以試試 Google 開源的 gemma 模型:
ollama embedding,Spring AI,spring,人工智能,java,spring ai,ollama
https://ollama.com/library/gemma

這個模型包含幾個不同的版本,默認(rèn)為 7b 的版本,可以先試試 7b,如果速度太慢可以換 2b 試試,執(zhí)行命令 ollama run gemma 時會下載模型并運(yùn)行,模型默認(rèn)會下載到用戶目錄中的 .ollama 中,如果用戶目錄(一般在C盤)所在盤空間少,可以提前通過環(huán)境變量方式修改位置,參考下面的配置(改成自己的路徑):

OLLAMA_MODELS=D:\.ollama

如果不會在 Windows 創(chuàng)建 .前綴的目錄,也可以用正常目錄,也可以打開 git bash,使用命令 mkdir .ollama 創(chuàng)建

配置環(huán)境變量后一定打開一個新的 CMD 或者 Terminal,然后執(zhí)行 ollama rum gemma 下載并啟動模型(已經(jīng)下載到用戶目錄的模型可以整體移動到新的目錄)。啟動后可以在控制臺進(jìn)行對話,如下所示:

>ollama run gemma
>>> 你好
你好!我很好,謝謝您的問候。

您想讓我做什么呢?我能夠幫助您嗎?

接下來在 Spring AI 中使用該模型,首先引入Maven依賴:

<dependency>
	<groupId>org.springframework.ai</groupId>
	<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
</dependency>

通過下面示例代碼運(yùn)行:

var ollamaApi = new OllamaApi();
var chatClient = new OllamaChatClient(ollamaApi).withModel("gemma")
		.withDefaultOptions(OllamaOptions.create()
				.withModel("gemma")
				.withTemperature(0.9f));

Scanner scanner = new Scanner(System.in);
while (true) {
	System.out.print(">>> ");
	String message = scanner.nextLine();
	if (message.equals("exit")) {
		break;
	}
	String resp = chatClient.call(message);
	System.out.println("<<< " + resp);
}

接口使用很簡單,下面再看如何使用 Ollama 的 Embeddings。

var ollamaApi = new OllamaApi();
//指定使用的模型
var embeddingClient = new OllamaEmbeddingClient(ollamaApi)
		.withDefaultOptions(OllamaOptions.create().withModel("gemma"));
//測試數(shù)據(jù)
VectorStore vectorStore = new SimpleVectorStore(embeddingClient);
vectorStore.add(List.of(
		new Document("白日依山盡,黃河入海流。欲窮千里目,更上一層樓。"),
		new Document("青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。"),
		new Document("一片孤城萬仞山,羌笛何須怨楊柳。春風(fēng)不度玉門關(guān)。"),
		new Document("危樓高百尺,手可摘星辰。不敢高聲語,恐驚天上人。")
));
Scanner scanner = new Scanner(System.in);
while (true) {
	System.out.print("請輸入關(guān)鍵詞: ");
	String message = scanner.nextLine();
	if (message.equals("exit")) {
		break;
	}
	List<Document> documents = vectorStore.similaritySearch(message);
	System.out.println("查詢結(jié)果: ");
	for (Document doc : documents) {
		System.out.println(doc.getContent());
	}
}

在我本地運(yùn)行時(靠CPU),解析文檔耗時如下:

10:33:10.423 - Calling EmbeddingClient for document id = 44d0114f-62ae-4d05-9e6d-457f157386ce
10:33:16.201 - Calling EmbeddingClient for document id = ac65024a-26a9-4827-af4c-af48a3321a4b
10:33:22.176 - Calling EmbeddingClient for document id = 53747918-8e8e-42e1-b4e6-3792c24b6881
10:33:26.125 - Calling EmbeddingClient for document id = 63123b8d-b475-48b4-b38e-71dbf1b49250

每一條文本耗時在6秒左右。解析完成后輸入提示詞進(jìn)行驗(yàn)證:

請輸入關(guān)鍵詞: 春風(fēng)
查詢結(jié)果: 
青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。
一片孤城萬仞山,羌笛何須怨楊柳。春風(fēng)不度玉門關(guān)。
白日依山盡,黃河入海流。欲窮千里目,更上一層樓。
危樓高百尺,手可摘星辰。不敢高聲語,恐驚天上人。

請輸入關(guān)鍵詞: 黃河
查詢結(jié)果: 
青山依舊在,幾度夕陽紅。白發(fā)漁樵江渚上,慣看秋月春風(fēng)。
一片孤城萬仞山,羌笛何須怨楊柳。春風(fēng)不度玉門關(guān)。
白日依山盡,黃河入海流。欲窮千里目,更上一層樓。
危樓高百尺,手可摘星辰。不敢高聲語,恐驚天上人。

春風(fēng)的結(jié)果還可以,但是黃河的結(jié)果就不對了。

如何使用其他模型進(jìn)行 Embedding 呢?

只要啟動了任何一個模型,我們通過修改上面的 withModel("gemma") 中的參數(shù)即可使用其他模型,如果本地下載過 llama2 模型,就可以直接改這里的參數(shù),不需要重新執(zhí)行 ollama run llama2 命令,這個命令影響 chat 功能的使用,不影響 embedding。如果指定的模型不存在,會提示如下信息:

[404] Not Found - {"error":"model 'llama2' not found, try pulling it first"}

可以通過 ollama pull llama2 進(jìn)行下載。

我們還可以搜專門的 embedding 模型,搜索時注意下圖搜索的位置:

ollama embedding,Spring AI,spring,人工智能,java,spring ai,ollama

頂部可以搜索全局的模型,不限于官方 library 下面的模型,搜索 embedding 結(jié)果如下:

ollama embedding,Spring AI,spring,人工智能,java,spring ai,ollama

我們可以試試 mofanke/dmeta-embedding-zh 這個模型,還有一個 mofanke/acge_text_embedding 是我聯(lián)系作者后,作者新提供的模型,后面文章也會以這個為例介紹如何將 huggingface 上的模型轉(zhuǎn)換為 ollama 的模型來使用。

使用命令 ollama pull mofanke/dmeta-embedding-zh 下載模型,這個模型不能通過 ollama run xxx 啟動,需要通過其他模型啟動后來引用,還使用前面的 ollama run gemma,下載完模型后修改 withModel("mofanke/dmeta-embedding-zh"),然后進(jìn)行測試即可。

Ollama 的存在使得 Java 調(diào)用各種開源大模型變得更統(tǒng)一更簡單,就好比大部分商業(yè)大模型都參考 OpenAI 的 API,方便我們調(diào)用一樣。通過 Ollama 的擴(kuò)展方式,還可以方便我們導(dǎo)入官方倉庫不存在的其他模型,后續(xù)文章會以 acge_text_embedding 為例介紹如何自定義基于 PyTorch 的模型。文章來源地址http://www.zghlxwxcb.cn/news/detail-859696.html

到了這里,關(guān)于Spring AI 使用本地 Ollama Embeddings的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何在本地使用Ollama運(yùn)行開源LLMs

    如何在本地使用Ollama運(yùn)行開源LLMs

    本文將指導(dǎo)您下載并使用Ollama,在您的本地設(shè)備上與開源大型語言模型(LLMs)進(jìn)行交互的強(qiáng)大工具。 與像ChatGPT這樣的閉源模型不同,Ollama提供透明度和定制性,使其成為開發(fā)人員和愛好者的寶貴資源。 我們將探索如何下載Ollama并與兩個令人興奮的開源LLM模型進(jìn)行交互:Me

    2024年04月27日
    瀏覽(20)
  • 小白Windows下通過Ollama部署使用本地模型

    小白Windows下通過Ollama部署使用本地模型

    運(yùn)行環(huán)境為 windows R9000P2021拯救者筆記本 AMD R7-5800H 32G 內(nèi)存 NVIDIA RTX 3070 Laptop GPU Ollama下載exe,直接下一步下一步?jīng)]有設(shè)置可以更改 windows默認(rèn)安裝路徑: C:UserswbigoAppDataLocalProgramsOllama 安裝后會自動將該路徑加入環(huán)境變量 雙擊圖標(biāo)運(yùn)行后狀態(tài)欄會出現(xiàn)小圖標(biāo),右鍵有退出、

    2024年03月13日
    瀏覽(25)
  • 使用 ollama 部署最新的Llama 3 70B本地模型

    使用 ollama 部署最新的Llama 3 70B本地模型

    在本地啟動并運(yùn)行大型語言模型。運(yùn)行Llama 3,Mistral, Gemma, Code Llama和其他模型。自定義并創(chuàng)建您自己的。 綜合優(yōu)點(diǎn): 快速下載+容器自動運(yùn)行大模型,現(xiàn)在下載,馬上上手。 本地利用 cpu 運(yùn)行大模型,本地安全可靠。 ollama 命令,管理大模型相對方便,也可以多個大模型中切

    2024年04月25日
    瀏覽(23)
  • 從零開始 Spring Boot 52:@Embedded 和 @Embeddable

    從零開始 Spring Boot 52:@Embedded 和 @Embeddable

    圖源:簡書 (jianshu.com) 這篇文章會介紹 @Embedded 和 @Embeddable 兩個注解在 JPA 中的用法。 先看一個示例: 這里使用了 Lombok 相關(guān)注解(比如 @Builder )幫助構(gòu)建實(shí)體類,詳細(xì)內(nèi)容可以閱讀我的相關(guān)文章。 user_student 是一個學(xué)生表,其中的 contacts_ 開頭的字段保存聯(lián)系人信息,這體

    2024年02月12日
    瀏覽(17)
  • 項(xiàng)目前瞻|Spring AI:在你的Spring應(yīng)用中使用生成式AI

    項(xiàng)目前瞻|Spring AI:在你的Spring應(yīng)用中使用生成式AI

    過去一年里,ChatGPT 和 Google Bard 這樣的東西出現(xiàn),為大眾帶來了生成式人工智能,似乎每個人都在夢想和計劃如何在他們的項(xiàng)目甚至日常生活中利用人工智能。 如果您是 Spring 開發(fā)人員,您可能想知道如何在 Spring 應(yīng)用程序中實(shí)現(xiàn)生成式 AI。如果是這樣,那么接下來這個視頻

    2024年02月03日
    瀏覽(19)
  • 使用Spring AI讓你的Spring Boot應(yīng)用快速擁有生成式AI能力

    之前分享了關(guān)于Spring新項(xiàng)目 Spring AI 的介紹視頻。視頻里演示了關(guān)于使用Spring AI將Open AI的能力整合到Spring應(yīng)用中的操作,但有不少讀者提到是否有博客形式的學(xué)習(xí)內(nèi)容。所以,本文就將具體介紹如何使用 Spring AI 快速讓您的Spring應(yīng)用擁有生成式AI的強(qiáng)大能力。 第一步:使用你

    2024年02月03日
    瀏覽(26)
  • 【linux 使用ollama部署運(yùn)行本地大模型完整的教程,openai接口, llama2例子】

    【linux 使用ollama部署運(yùn)行本地大模型完整的教程,openai接口, llama2例子】

    # 安裝相應(yīng)的包 # 開啟ollama服務(wù)端! # 啟動llama2大模型(新開一個終端) # 如果不想啟動運(yùn)行,只下載可以 在啟動完后,就可以對話了 # python接口對話 ? # OpenAI適配接口對話 # CUR流式接口 # 參考 llama2 (ollama.com) https://ollama.com/library/llama2 OpenAI compatibility · Ollama Blog https://ollama

    2024年03月25日
    瀏覽(50)
  • Elasticsearch:使用在本地計算機(jī)上運(yùn)行的 LLM 以及 Ollama 和 Langchain 構(gòu)建 RAG 應(yīng)用程序

    Elasticsearch:使用在本地計算機(jī)上運(yùn)行的 LLM 以及 Ollama 和 Langchain 構(gòu)建 RAG 應(yīng)用程序

    無需 GPU 的隱私保護(hù) LLM。在本博客中,我將演示使用不同的工具 Ollama 構(gòu)建的 RAG 應(yīng)用程序。 與本文相關(guān)的所有源代碼均已發(fā)布在 github上。 請克隆存儲庫以跟隨文章操作。我們可以通過如下的方式來克隆: Ollama 是一個輕量級且靈活的框架,專為在個人計算機(jī)上本地部署 LL

    2024年04月16日
    瀏覽(30)
  • Spring Boot學(xué)習(xí)隨筆- 本地化測試(@SpringBootTest)、熱部署(spring-boot-devtools)、日志Logback常用級別使用、指定包級別輸出

    Spring Boot學(xué)習(xí)隨筆- 本地化測試(@SpringBootTest)、熱部署(spring-boot-devtools)、日志Logback常用級別使用、指定包級別輸出

    學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程 頻繁啟動服務(wù)器進(jìn)行功能的訪問非常繁瑣、SpringBoot給我們提供了用于測試的依賴,自動集成Junit,使用了這個以來后,test包在打包時不會被打包進(jìn)去 @SpringBootTest注解 修飾在類上,用來啟動本地Spring環(huán)境 作用 熱部署是指

    2024年02月05日
    瀏覽(23)
  • Spring AI - 使用向量數(shù)據(jù)庫實(shí)現(xiàn)檢索式AI對話

    Spring AI - 使用向量數(shù)據(jù)庫實(shí)現(xiàn)檢索式AI對話

    ?Spring AI 并不僅限于針對大語言模型對話API進(jìn)行了統(tǒng)一封裝,它還可以通過簡單的方式實(shí)現(xiàn)LangChain的一些功能。本篇將帶領(lǐng)讀者實(shí)現(xiàn)一個簡單的檢索式AI對話接口。 ?在一些場景下,我們想讓AI根據(jù)我們提供的數(shù)據(jù)進(jìn)行回復(fù)。因?yàn)閷υ捰凶畲骉oken的限制,因此很多場景下我們

    2024年04月14日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包