chromem-go + ollama + bge-m3 进行文档向量嵌入和查询

Ollama 安装

https://ollama.com/download

Ollama 运行嵌入模型 bge-m3:latest

bash 复制代码
ollama run bge-m3:latest

chromem-go 文档嵌入和查询

bash 复制代码
package main

import (
	"context"
	"fmt"
	"runtime"

	"github.com/philippgille/chromem-go"
)

func main() {
	ctx := context.Background()

	db := chromem.NewDB()

	// 配置Ollama嵌入函数
	ollamaURL := "http://localhost:11434/api"
	embeddingModelName := "bge-m3:latest" // 嵌入模型
	embeddingFunc := chromem.NewEmbeddingFuncOllama(embeddingModelName, ollamaURL)

	// 创建集合
	c, err := db.CreateCollection("knowledge-base", nil, embeddingFunc)
	if err != nil {
		panic(err)
	}

	// 添加文档
	err = c.AddDocuments(ctx, []chromem.Document{
		{
			ID:      "1",
			Content: "地球围绕太阳公转,公转周期约为365.25天。",
		},
		{
			ID:      "2",
			Content: "光速是每秒大约30万公里,是宇宙中最快的速度。",
		},
		{
			ID:      "3",
			Content: "爱因斯坦的相对论表明,时间和空间是相互依存的。",
		},
	}, runtime.NumCPU())
	if err != nil {
		panic(err)
	}

	// 查询指定文档的向量嵌入结果
	d, err := c.GetByID(ctx, "1")
	if err != nil {
		panic(err)
	}
	fmt.Printf("ID: %v\n相似度: %v\n内容: %v\n", d.ID, d.Embedding, d.Content)

	
	// 查询最相似的文档
	res, err := c.Query(ctx, "地球是如何绕太阳转动的?", 1, nil, nil)
	if err != nil {
		panic(err)
	}

	fmt.Printf("ID: %v\n相似度: %v\n内容: %v\n", res[0].ID, res[0].Similarity, res[0].Content)
}
复制代码
- 执行结果

```bash
ID: 1
相似度: [-0.048278235 0.029943926 -0.046947356 0.013760399 -0.03576285 -0.039678257 -0.053785235 -7.5125805e-05 -0.0061393697 0.004418444 -0.01309421 -0.0029039902 -0.01859751 -0.0063258163 -0.021638555025466181 0.046271987 -0.003975194 0.04570773 0.0048612687 0.016101627 0.0019949665 0.013527348 -0.048111923 -0.00034328588 -0.012481666 -0.03213145 0.023684813 0.05305547 -0.02495996 0.0055474048 -0.037909176 0.023199169 -0.015521656 -0.013062175 -0.008066219 0.003536004 -0.027558645 -0.047622953 0.006178207 -0.014388687 -0.054673854 0.026910294 0.00014201537 0.007908895 -0.026424723 -0.062104877 -0.0053208894 -0.01001896 -0.021275248 0.022718431 0.008418682 0.06660582 -0.027360136 -0.019658735 -0.012067195 0.006206403 -0.04190195 -0.02841136 0.010876789 -0.0130425105 0.044321395 0.004486173 -0.019500235 -0.0024378023 0.0669404 0.048055436 0.0030545678 -0.03601155 0.0005050216 -0.023484664 0.0052628648 0.0023525811 -0.032897282 -0.020649226 0.047157362 -0.014132992 0.0074369456 -0.010564738 -0.015976297 0.024285108 -0.011297176 0.048821554 0.024396917 -0.06517341 0.04750823 0.009604485 0.048595484 -0.019921351 0.013744933 -0.010755326 0.03134344 -0.0092248395 0.024604019 -0.039241295 -0.026731111 0.02205247 -0.018685173 0.037328158 0.031269085 -7.8767785e-05 0.0018450829 0.023917604 0.026061324 -0.02322077 -0.002463908 0.062435575 0.0024458666 0.03409856 -0.011322663 0.046929296 0.056725085 0.04312226 -0.009493681 -0.011677408 0.01642092 -0.029530305 -0.0040749605 -0.047454663 -0.0004875254 -0.032572627 0.024337089 0.02842273 -0.017343279 0.02881671 -0.01874975 0.05318264 0.014814178 0.014377932 0.035814222 -0.032721147 0.033262502 -0.06116623 0.04465096 -0.047773626 -0.019575138 0.027018525 0.025948653 -0.01053538 -0.0086926995 0.0049429145 0.027634002 -0.045095276 -0.0018184121 0.02300672 -0.043419003 -0.0022339534 0.0046437886 -0.0009471605 0.0056261476 -0.006107449 0.0013542225 0.07563268 0.053391367 0.020503564 0.04829546 -0.01492436 -0.0039859978 -0.023557633 -0.013765825 0.06936 0.030508626 -0.033987466 0.03661447 -0.012778973 0.027787317 -0.0114604235 0.036509752 -0.004649567 0.035811573 0.02730082 -0.03094325 -0.021802893 0.0033398566 -0.004098622 0.029748777 0.030069336 0.013867113 -0.003965946 -0.0039030956 -0.030241631 0.009841588 0.029879997 -0.030186525 -0.048617158 0.005833459 -0.04824355 -0.014452644 0.0123494845 0.019104546 0.0019523307 -0.017926348 -0.0015641719 -0.015315678 0.016466523 -0.035151295 -0.00042594504 0.0016200986 -0.013457879 -0.0016085943 0.006558519 0.025256868 -0.03113169 0.024732634 -0.0013734075 -0.00246656 -0.0597857 -0.052149642 0.051085413 -0.031692687 0.009172464 0.015820283 0.0031918057 -0.030099265 -0.012925994 0.034908798 0.010678488 -0.051224742 0.05380477 -0.021755476 -0.006859066 0.038384918 -0.04143686 -0.013126968 -0.017223379 0.038444966 -0.048519135 0.063603975 0.012539137 -0.0062677017 -0.030778676 0.023306178 0.028189294 0.031099929 0.024913222 -0.04022084 -0.055932503 0.006435593 0.035773333 0.0050192233 0.011989819 0.011834477 0.04605447 0.013906836 -0.02807423 0.0148404855 0.032038756 0.028733676 -0.058907613 -0.0059463545 -0.002617128 -0.04360129 -0.006643963 0.029214619 -0.008841926 -0.0071565025 -0.023052342 0.009854473 0.03694801 -0.011753557 -0.016569171 0.006115221 -0.0262432 0.034103196 0.0034069037 -0.0062471055 -0.025193816 0.025850745 -0.005387992 -0.0029612198 -0.016997956 0.011787406 0.0068529886 0.04689294 -0.030388651 -0.0025266705 -0.030427359 0.023455687 0.0027830563 -0.03069025 -0.011684976 0.0017174248 0.008472556 -0.008749114 0.006850255 -0.069108665 -0.025384853 0.04070614 -0.0068723448 -0.028723363 -0.038580917 -0.014256187 0.019054396 -0.030384723 0.047684427 -0.019031199 -0.006678111 -0.14995855 -0.03811934 0.021053828 -0.0070014778 -0.005072701 -0.020044932 0.027580764 -0.02424017 -0.022728162 0.049205404 -0.022983115 -0.027786525 -0.031599376 -0.020830676 -0.018688858 0.015618405 0.009686446 -0.029274737 -0.004548124 -0.01938337 -0.021058125 -0.024234528 0.03907129 0.004246895 -0.043710075 0.054763272 -0.015444509 -0.019508779 -0.04021856 -0.012553367 0.031008117 -0.008158562 -0.0023348646 0.018385002 0.06531283 -0.0043382007 0.041677136 -0.0010910437 0.028191078 -0.010305941 0.023282353 -0.009960031 -0.046841186 0.03318677 -0.029308563 0.016766539 -0.021228634 0.008888638 0.0026051374 0.017643973 0.0029014195 0.00086639554 0.034643494 0.0022325616 -0.04365298 0.013847382 -0.007241243 0.02600469 0.010162522 -0.00072677596 -0.019585224 -0.072563104 -0.027907582 -0.04233817 -0.0018776798 0.053260494 0.0027708283 -0.0011303017 0.0066580237 0.0039238017 0.006188755 0.012808601 -0.006718706 0.00049006805 0.02900738 0.016957412 -0.014323641 0.02135805 -0.010784466 -0.09663906 0.0052137543 0.029404165 -0.022055449 0.015077572 -0.0402385 -0.06984829 -0.007368888 0.0066210222 0.036946386 0.24451458 -0.023736347 -0.0018520829 -0.024607176 0.03440779 -0.044992838 -0.03435197 0.02089527 0.029743638 -0.04063349 -0.051417235 -0.029994166 0.0009068786 -0.019670019 -0.009794407 0.032763414 0.026810171 -0.0030186882 0.062442314 -0.0064153085 -0.0059032277 0.007945452 0.0064577083 0.024779042 -0.055779077 -0.018402293 -0.021910766 0.06045783 0.0037143168 0.013708752 -0.027904557 -0.04065696 0.039519347 0.054839574 0.0037236332 0.013984168 0.0064316746 -0.017269546 0.026395401 0.007944099 0.0128892055 -0.016508209 0.015580415 -0.0546847 0.029834801 -0.008441646 -0.005732201 -0.044650726 0.005233522 -0.018224996 0.004330258 0.05124406 -0.01116461 0.022082768 -0.0523277 -0.0031586057 -0.0123083135 0.007445062 -0.010180881 -0.030138362 -0.08018011 0.035784796 1.3030291e-05 -0.0059061907 0.07297271 -0.048255354 -0.013248363 0.01401701 0.07742805 -0.011096596 -0.005137592 -0.01829144 -0.037411172 -0.018768469 0.027820151 0.03201168 -0.02339261 0.03215527 0.0015264238 0.009716035 -0.008523237 -0.015391719 -0.039176267 -0.014352625 0.019533003 0.0031258874 0.023451973 0.02756901 0.012708942 -0.0043962905 0.002598544 0.05180817 -0.036770776 0.0074502197 0.022240499 -0.013673257 -0.020726107 -0.020166581 -0.036226466 -0.016421108 0.031447988 0.0067662555 -0.003120439 -0.035032023 -0.011909373 -0.031548273 0.0064601605 0.014313619 -0.0009801603 0.02916646 -0.031803828 -0.018479861 0.014677683 -0.022042051 0.0071600466 0.04128637 0.008153653 0.042715892 -0.017088253 0.03587875 0.02334258 -0.060074076 0.0054686777 0.012613184 0.013086949 0.030186359 -0.025300205 0.0077866367 0.023814656 0.034344833 0.0035788442 0.007179423 -0.018671619 -0.021155633 0.059740566 0.020622732 0.04071788 0.011976293 -0.0027885672 0.033303212 -0.0064185164 0.019226722 0.011692543 -0.029204344 -0.00014878224 -0.043755032 -0.014829494 0.008741163 0.009314823 -0.012449122 -0.014594975 0.0014958436 0.027681857 -0.027515855 -0.018565664 0.0105290795 -0.021609811 -0.02446084 0.018750671 -0.025001092 -0.037676297 0.018075513 0.06611297 0.08626481 0.035448924 -0.029192606 -0.0034057098 0.039196923 0.06454245 -0.0196502 -0.006585603 -0.014128557 -0.013421359 -0.04876682 0.04943232 0.021586226 -8.3543506e-05 0.0013866313 -0.05136082 0.033791307 0.0066506825 0.054528333 0.039399814 0.0030075805 -0.012826367 0.024091966 -0.0057817935 -0.0035301556 0.031412497 -0.011562013 0.0069984375 0.08922536 -0.0027231479 -0.00091494486 0.032487933 0.012114761 -0.0018527171 0.014758998 -0.0011815558 -0.01940302 0.023151105 0.045223203 0.009071401 -0.01073918 -0.0061911885 0.017910257 -0.027169364 0.021647815 -0.0059495373 0.037787188 -0.038109597 -0.02744007 -0.027469926 0.047305528 -0.04568835 -0.015324895 0.04738293 0.007397791 -0.0077249915 -0.014072878 -0.008733192 0.032022838 -0.007630208 -0.033329275 -0.0112203425 0.046625134 -0.016581912 0.003302192 -0.055417582 -0.011563556 -0.006722028 -0.01109391 0.0030300228 -0.056822002 -0.031232644 -0.0072378265 0.036027428 0.049641058 -0.025614506 0.025772944 -0.0019163514 0.01424799 -0.010033967 -0.011769597 -0.012689568 0.05106501 -0.008859616 -0.015427284 0.072742715 0.041322455 -0.028020272 0.026688771 0.027192397 -0.016192483 -0.03694634 -0.0031639433 -0.030053465 -0.011494547 -0.0058956128 -0.007073798 -0.021962777 0.026679987 -0.0076592467 0.007981763 0.0032981164 -0.053739596 0.04031418 -0.022106944 -0.017605487 -0.049486645 -0.041721538 -0.009920212 0.0326865 0.01895927 -0.042951357 0.011423141 0.025227578 -0.004397744 -0.033235338 -0.04110481 -0.034583617 0.038145468 0.03342585 -0.021402063 -0.025856031 -0.018480452 0.048554443 -0.02326093 0.018133514 -0.008949709 -0.0033207852 -0.007978696 0.0054310462 0.093111426 -0.0020309112 -0.0066638063 -0.036846448 0.011095879 -0.03009344 0.023977699 0.0070311096 0.013753733 -0.039233815 -0.005338734 -0.061550718 0.0062017837 -0.00037466444 -0.04851073 0.0062629287 -0.023646351 -0.0044804034 -0.054179333 -0.012293976 0.020543637 0.0509459 0.0061435876 -0.0036606533 -0.005966868 -0.023775388 -0.001963359 -0.00957215 -0.011715365 -0.009588742 -0.021311287 0.016382203 -0.00871407 0.054523952 -0.004938784 -0.04956388 -0.009895957 -0.045549035 0.00748527 -0.017851971 -0.050924126 0.0008174108 -0.027435925 0.044145916 -0.015854372 0.002686606 0.004180113 -0.031139567 -0.03520977 -0.015262283 -0.044136293 0.0018738139 -0.0042105042 0.0020765406 -0.014785695 0.0045590093 0.02600528 -0.014569057 -0.025425702 -0.025635948 -0.04577918 0.015397694 -0.036322653 0.030370355 -0.0293115 0.0578775 0.02597699 -0.031841528 0.0064050034 0.019277336 -0.008910939 -0.015779963 0.051727984 0.017129963 -0.023076586 -0.014711851 0.010629377 -0.01581634 0.020314792 0.0492972 0.027340882 -0.012282161 0.019717338 -0.016221898 -0.015991058 -0.0240755 0.021382283 0.020933865 -0.066027686 -0.02339907 -0.014803473 -0.031641997 -0.033165008 -0.030785324 0.007023108 -0.035267364 0.02190344 -0.048701473 -0.085727386 -0.033514995 0.027056193 -0.13263443 0.032628395 -0.06337666 -0.019651396 -0.032509897 0.009875111 -0.006813047 -0.0025009618 0.0025665334 -0.048376046 0.013163475 -0.03234141 0.008509452 -0.018265482 -0.01190599 0.05732612 -0.019323587 0.026220998 -0.006306391 0.018956846 -0.008374296 -0.014030808 -0.01905529 -0.04997886 -0.03468695 -0.0050690565 -0.024571007 0.030761365 0.0022546183 -0.04184796 0.035413336 -0.05343906 -0.019516006 0.0472948 -0.0040101567 0.049320687 0.015839541 0.04443264 0.007145173 0.03282192 -0.0017232538 0.015556995 0.044334486 0.009649485 0.024525147 -0.008906373 -0.010138855 -0.027279573 -0.05822863 0.030572193 -0.04098615 0.024387812 0.021872405 0.083838806 -0.04233094 0.033602674 -0.03259119 0.06724755 0.01673619 0.0048807515 0.026572205 -0.0013888148 -0.033119854 -0.030794587 -0.043538745 0.036153983 -0.047536686 0.002947599 0.013734673 -0.010183234 -0.013198546 -0.009295673 -0.012226988 0.016767755 -0.018817738 0.015528552 0.025538413 -0.012283126 -0.06595166 0.023375997 -0.010122832 -0.034021463 -0.018103171 0.013764715 0.007913734 0.009562189 -0.043744538 -0.02636144 0.0012308581 -0.02110441 -0.00199723 -0.039941307 -0.04180145 -0.0020339647 -0.031236304 -0.03575325 -0.046859555 -0.031874727 -0.024451537 -0.024369316 0.0013544702 -0.036405224 -0.051740676 -0.005499103 0.00037986587 0.035828322 -0.010335616 0.0036537605 0.022945812 -0.0358664 -0.036368728 0.0010204243 -0.022160828 0.0044699926 0.0013709064 -0.019065393 -0.08490456 0.0023168896 -0.021216929 0.024789637 -0.040884107 -0.0060447194 0.007587622 -0.011547424 0.027954064 -0.015514929 -0.0010137943 0.013601417 -0.04382147 -0.017813437 -0.02167846 -0.011905542 -0.044755585 0.011600295 0.029418208 0.02615607 0.011165772 0.022447567 0.018265568 0.0016502585 -0.031391937 0.016609622 0.0055464343 0.0012534662 0.016982099 0.03400589 0.020958414 -0.008067442 0.003087519 0.014822575 0.009995034 -0.021388188 -0.07363946 0.055725154 -0.02311993 0.028204158 0.026886158 0.06464843 -0.02071607 0.017094525 -0.0061816573 -0.07325073 0.013381587 -0.016680727 0.014275177 0.06397252 -0.018372597 -0.011080813 -0.012709688 -0.005311906 -0.0012509185 0.027862443 -0.05631564 -0.013991235 0.06919624 0.057636593 0.00893128 0.05057141 0.0067934166 0.044168424 0.0100694625 0.062701024 0.021595571 0.008591244 0.03448542 0.025343059 -0.027996844 -0.049321264 -0.0077862926 -0.031222427 -0.05015744 0.041008428 0.008715824 0.012055291 0.048135333 -0.0023589483 0.0059991237 0.07058944 0.0018730916 0.07679312 -0.008795632 -0.025767023 -0.006880956 0.002784966 0.0014025583 -0.06599676 0.041986316 0.027924486 -0.027601613 0.049700398 0.04238212 0.02986896 -0.006884459 0.050581012 -0.019845545 0.0068653435 -0.004681379 0.03837706 -0.03535402 -0.00038354186 -0.05101466 -0.019537231 -0.032563318 0.030893398 -0.00734956 -0.036574677 0.0020036604 0.036428053 -0.005649603 -0.032026317 -0.025829105 0.004665892 0.00030405546 0.025081897 -0.0278506 0.05184839 -0.03162138 0.017012488 0.06245797 -0.02937946 0.07568915 0.0071581597 0.01820149 0.012207527]
内容: 地球围绕太阳公转,公转周期约为365.25天。
ID: 1
相似度: 0.7101842
内容: 地球围绕太阳公转,公转周期约为365.25天。
相关推荐
Json_181790144803 分钟前
python采集淘宝拍立淘按图搜索API接口,json数据示例参考
服务器·前端·数据库
Matlab光学8 分钟前
MATLAB仿真:Ince-Gaussian光束和Ince-Gaussian矢量光束
开发语言·算法·matlab
Albert Tan19 分钟前
Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作
数据库·oracle
好记忆不如烂笔头abc25 分钟前
oracle-blob导出,在ob导入失败
大数据·数据库·python
珹洺28 分钟前
Java-servlet(十)使用过滤器,请求调度程序和Servlet线程(附带图谱表格更好对比理解)
java·开发语言·前端·hive·hadoop·servlet·html
勘察加熊人32 分钟前
c#使用forms实现helloworld和login登录
开发语言·c#
私风翼1 小时前
SQL注入:基于GET和POST的报错注入详解
数据库·sql
双叶8361 小时前
(C语言)学生信息表(学生管理系统)(基于通讯录改版)(正式版)(C语言项目)
c语言·开发语言·c++·算法·microsoft
IT从业者张某某1 小时前
Python数据可视化-第4章-图表样式的美化
开发语言·python·信息可视化
脑子慢且灵1 小时前
【蓝桥杯】 枚举和模拟练习题
java·开发语言·职场和发展·蓝桥杯·模拟·枚举