Cohere
Die Einbettungsmodelle von Cohere dienen zur Erzeugung von Texteinbettungen, d. h. von Listen mit Fließkommazahlen, die semantische Informationen über den Text enthalten. Diese Einbettungen können für Aufgaben wie Textklassifizierung und semantische Suche verwendet werden.
Milvus lässt sich mit den Einbettungsmodellen von Cohere über die Klasse CohereEmbeddingFunction
integrieren. Diese Klasse übernimmt die Berechnung der Einbettungen und gibt sie in einem mit Milvus kompatiblen Format zur Indizierung und Suche zurück.
Um diese Funktion zu nutzen, installieren Sie die notwendigen Abhängigkeiten:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Dann instanziieren Sie die Klasse CohereEmbeddingFunction
:
from pymilvus.model.dense import CohereEmbeddingFunction
cohere_ef = CohereEmbeddingFunction(
model_name="embed-english-light-v3.0",
api_key="YOUR_COHERE_API_KEY",
input_type="search_document",
embedding_types=["float"]
)
Parameter:
model_name
(string)Der Name des Cohere-Einbettungsmodells, das für die Kodierung verwendet werden soll. Sie können jeden der verfügbaren Namen des Cohere-Einbettungsmodells angeben, z. B.
embed-english-v3.0
,embed-multilingual-v3.0
, usw. Wenn Sie diesen Parameter nicht angeben, wirdembed-english-light-v3.0
verwendet. Eine Liste der verfügbaren Modelle finden Sie unter Einbetten.api_key
(Zeichenfolge)Der API-Schlüssel für den Zugriff auf die Cohere-API.
input_type
(Zeichenkette)Der Typ der Eingabe, die an das Modell übergeben wird. Erforderlich für die Einbettung von Modellen v3 und höher.
"search_document"
: Wird für Einbettungen verwendet, die in einer Vektordatenbank für Suchzwecke gespeichert sind."search_query"
: Verwendet für Einbettungen von Suchanfragen, die gegen eine Vektor-DB laufen, um relevante Dokumente zu finden."classification"
: Verwendet für Einbettungen, die durch einen Textklassifikator geleitet werden."clustering"
: Wird für die Einbettungen verwendet, die einen Clustering-Algorithmus durchlaufen.
embedding_types
(Liste[str])Der Typ der Einbettungen, den Sie zurückerhalten möchten. Nicht erforderlich und Standard ist None, was den Antworttyp Embed Floats zurückgibt. Derzeit können Sie nur einen einzigen Wert für diesen Parameter angeben. Mögliche Werte:
"float"
: Verwenden Sie diesen Wert, wenn Sie die standardmäßigen Float-Einbettungen zurückerhalten möchten. Gültig für alle Modelle."binary"
: Verwenden Sie diese Option, wenn Sie binäre Einbettungen mit Vorzeichen zurückbekommen möchten. Gültig nur für v3-Modelle."ubinary"
: Verwenden Sie dies, wenn Sie vorzeichenlose binäre Einbettungen zurückbekommen wollen. Gültig nur für v3-Modelle.
Um Einbettungen für Dokumente zu erstellen, verwenden Sie die Methode encode_documents()
:
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = cohere_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", cohere_ef.dim, docs_embeddings[0].shape)
Die erwartete Ausgabe ist ähnlich wie die folgende:
Embeddings: [array([ 3.43322754e-02, 1.16252899e-03, -5.25207520e-02, 1.32846832e-03,
-6.80541992e-02, 6.10961914e-02, -7.06176758e-02, 1.48925781e-01,
1.54174805e-01, 1.98516846e-02, 2.43835449e-02, 3.55224609e-02,
1.82952881e-02, 7.57446289e-02, -2.40783691e-02, 4.40063477e-02,
...
0.06359863, -0.01971436, -0.02253723, 0.00354195, 0.00222015,
0.00184727, 0.03408813, -0.00777817, 0.04919434, 0.01519775,
-0.02862549, 0.04760742, -0.07891846, 0.0124054 ], dtype=float32)]
Dim: 384 (384,)
Um Einbettungen für Abfragen zu erstellen, verwenden Sie die Methode encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = cohere_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", cohere_ef.dim, query_embeddings[0].shape)
Die erwartete Ausgabe ist ähnlich wie die folgende:
Embeddings: [array([-1.33361816e-02, 9.79423523e-04, -7.28759766e-02, -1.93786621e-02,
-9.71679688e-02, 4.34875488e-02, -9.81445312e-02, 1.16882324e-01,
5.89904785e-02, -4.19921875e-02, 4.95910645e-02, 5.83496094e-02,
3.47595215e-02, -5.87463379e-03, -7.30514526e-03, 2.92816162e-02,
...
0.00749969, -0.01192474, 0.02719116, 0.03347778, 0.07696533,
0.01409149, 0.00964355, -0.01681519, -0.0073204 , 0.00043154,
-0.04577637, 0.03591919, -0.02807617, -0.04812622], dtype=float32)]
Dim 384 (384,)