handle_embeddings
使用 Ollama embedding model
Akasha 可以使用 Ollama 提供的 embedding model。請先啟動 Ollama,並下載模型:
ollama pull nomic-embed-text
接著使用 ollama: alias 建立 embedding object:
import akasha.helper as ah
embedding_model = ah.handle_embeddings("ollama:nomic-embed-text")
query_vector = embedding_model.embed_query("什麼是檢索?")
預設會連線到 http://localhost:11434。如果 Ollama 執行在其他主機,可以設定 OLLAMA_API_BASE:
OLLAMA_API_BASE=http://192.168.1.10:11434
也可以直接在 alias 中指定 endpoint:
embedding_model = ah.handle_embeddings(
"ollama:http://192.168.1.10:11434@nomic-embed-text"
)
akasha.helper.handle_embeddings() 可以根據 Provider 別名、既有 Embedding 物件或自訂 Embedding function 建立 Embedding 物件。
建立 Embedding 物件
import akasha.helper as ah
embedding_model = ah.handle_embeddings(
"openai:text-embedding-3-small"
)
回傳的物件遵循 LangChain 的 Embeddings 介面。
可用方法
query_vector = embedding_model.embed_query("什麼是檢索?")
document_vectors = embedding_model.embed_documents(
["第一份文件", "第二份文件"]
)
| 方法 | 回傳值 |
|---|---|
embed_query(text) |
一個由浮點數組成的向量清單。 |
embed_documents(texts) |
向量清單,每段輸入文字對應一個向量。 |
Provider 別名
常見別名包括:
openai:text-embedding-3-small
gemini:gemini-embedding-001
hf:BAAI/bge-base-en-v1.5
本機 Hugging Face Embedding 可能需要完整安裝;遠端 Provider 則需要設定對應的環境變數。
Note
向量維度由選用的 Embedding 模型決定。請儲存並比較相容模型產生的向量,不要直接混用不同向量空間的結果。