OpenAI

OpenAI / text-embedding-3-small

Le modèle d'intégration de texte le plus rentable d'OpenAI, avec une précision et une efficacité accrues par rapport aux modèles text-embedding-ada-002 et text-embedding-3-large.

Introduction à text-embedding-3-small

text-embedding-3-small est le petit modèle d'intégration de texte de l'OpenAI, créant des intégrations avec 1536 dimensions. Comparé aux autres modèles d'intégration de texte de l'OpenAI, comme text-embedding-ada-002 et text-embedding-3-large, text-embedding-3-small est le modèle le plus rentable avec une précision et une efficacité accrues. Il convient parfaitement aux applications générales de recherche vectorielle.

Jetons un coup d'œil rapide à quelques principes de base.

ModèleDimensionsMax TokensModèle MIRACL avgMETB avgPrice
text-embedding-3-large3072819154.964.6$0.13 / 1M tokens
text-embedding-ada-0021536819131.461.0$0.10 / 1M de jetons
1536819144.062.3$0.02 / 1M de jetons

Comment générer des embeddings vectoriels avec text-embedding-3-small

Il y a deux façons principales de créer des embeddings vectoriels :

  • PyMilvus : le SDK Python pour Milvus qui intègre de manière transparente le modèle text-embedding-3-small.
  • OpenAI Embedding : le SDK Python proposé par OpenAI.

Une fois que les embeddings vectoriels sont générés, ils peuvent être stockés dans Zilliz Cloud (un service de base de données vectorielles entièrement géré par Milvus) et utilisés pour la recherche de similarité sémantique. Voici les quatre étapes clés :

  1. Sign up pour un compte Zilliz Cloud gratuit.
  2. Configurer un cluster sans serveur et obtenir le Point de terminaison public et la clé API.
  3. Créer une collection de vecteurs et insérer vos embeddings vectoriels.
  4. Lancez une recherche sémantique sur les embeddings stockés.

Générer des embeddings vectoriels via PyMilvus et les insérer dans Zilliz Cloud pour une recherche sémantique.

from pymilvus import model, MilvusClient

OPENAI_API_KEY = "votre-openai-api-key"
ef = model.dense.OpenAIEmbeddingFunction(
   nom_du_modèle="text-embedding-3-small",
   api_key=OPENAI_API_KEY,
   )

# Générer des embeddings pour les documents
docs = [
   "L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956",
   "Alan Turing a été la première personne à mener des recherches substantielles sur l'intelligence artificielle,
   "Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre."
]

docs_embeddings = ef.encode_documents(docs)

# Générer des embeddings pour les requêtes
queries = ["Quand l'intelligence artificielle a-t-elle été fondée ?
          "Où est né Alan Turing ?"]

query_embeddings = ef.encode_queries(queries)

# Connexion au nuage Zilliz avec le point de terminaison public et la clé API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
    client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
    nom_de_la_collection=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings) :
    client.insert(COLLECTION, {"text" : doc, "vector" : embedding})
    
results = client.search(
    nom_de_la_collection=COLLECTION,
    data=query_embeddings,
    niveau de cohérence="Fort",
    output_fields=["text"])

Pour plus d'informations, consultez notre [documentation PyMilvus Embedding Model] (https://milvus.io/docs/embeddings.md).

Générer des embeddings via le SDK Python d'OpenAI et les insérer dans Zilliz Cloud pour la recherche sémantique.

from openai import OpenAI
from pymilvus import MilvusClient

OPENAI_API_KEY = "votre-openai-api-key"
client = OpenAI(api_key=OPENAI_API_KEY)
# Générer des embeddings pour les documents
doc_response = client.embeddings.create(
   input=[
   "L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956,
   "Alan Turing a été la première personne à mener des recherches substantielles sur l'IA,
   "Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre.
   ],
   model="text-embedding-3-small"
   )
doc_embeddings = [data.embedding for data in doc_response.data]

# Générer des embeddings pour les requêtes
query_response = client.embeddings.create(
   input=["Quand l'intelligence artificielle a-t-elle été fondée ?
          "Où est né Alan Turing ?"],
   model="text-embedding-3-small"
   )
query_embeddings = [data.embedding for data in query_response.data]

# Se connecter au nuage Zilliz avec le point de terminaison public et la clé API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
    client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
    nom_de_la_collection=COLLECTION,
    dimension=1536,
    auto_id=True)

pour doc, embedding dans zip(docs, docs_embeddings) :
    client.insert(COLLECTION, {"text" : doc, "vector" : embedding})
    
results = client.search(
    nom_de_la_collection=COLLECTION,
    data=query_embeddings,
    niveau de cohérence="Fort",
    output_fields=["text"])

Pour plus d'informations, consultez [OpenAI's Embedding Guide] (https://platform.openai.com/docs/guides/embeddings).