OpenAI

OpenAI / text-embedding-3-small

Il modello di incorporazione del testo più conveniente di OpenAI, con una maggiore precisione ed efficienza rispetto a text-embedding-ada-002 e text-embedding-3-large.

Introduzione a text-embedding-3-small

text-embedding-3-small è il modello di incorporamento del testo di piccole dimensioni di OpenAI, che crea incorporazioni con 1536 dimensioni. Rispetto agli altri modelli di incorporamento del testo di OpenAI, come text-embedding-ada-002 e text-embedding-3-large, text-embedding-3-small è il modello più conveniente, con una maggiore precisione ed efficienza. È ottimo per applicazioni di ricerca vettoriale generiche.

Diamo una rapida occhiata ad alcune nozioni di base.

ModelloDimensioniGettoni massimiModello MIRACL avgMETB avgPrezzo
text-embedding-3-large3072819154.964.6$0.13 / 1M tokens
text-embedding-ada-0021536819131.461.0$0.10 / 1M tokens
text-embedding-3-small1536819144.062.3$0.02 / 1M tokens

Come generare le incorporazioni vettoriali con text-embedding-3-small

Esistono due modi principali per creare incorporazioni vettoriali:

  • PyMilvus: l'SDK Python per Milvus che integra perfettamente il modello text-embedding-3-small.
  • OpenAI Embedding: l'SDK Python offerto da OpenAI.

Una volta generate le incorporazioni vettoriali, queste possono essere archiviate in Zilliz Cloud (un servizio di database vettoriale completamente gestito da Milvus) e utilizzate per la ricerca di similarità semantica. Ecco i quattro passaggi chiave:

  1. Iscriviti per un account Zilliz Cloud gratuito.
  2. Configurare un cluster serverless e ottenere il Public Endpoint and API Key.
  3. Creare una collezione di vettori e inserire i propri embeddings vettoriali.
  4. Eseguire una ricerca semantica sugli embeddings memorizzati.

Generare embeddings vettoriali tramite PyMilvus e inserirli in Zilliz Cloud per la ricerca semantica.

da pymilvus import model, MilvusClient

OPENAI_API_KEY = "la tua-openai-api-chiave"
ef = model.dense.OpenAIEmbeddingFunction(
   model_name="text-embedding-3-small",
   api_key=OPENAI_API_KEY,
   )

# Generare le incorporazioni per i documenti
docs = [
   "L'intelligenza artificiale è stata fondata come disciplina accademica nel 1956",
   "Alan Turing è stato il primo a condurre una ricerca sostanziale sull'intelligenza artificiale",
   "Nato a Maida Vale, Londra, Turing è cresciuto nel sud dell'Inghilterra".
]

docs_embeddings = ef.encode_documents(docs)

# Generare embeddings per le query
query = ["Quando è stata fondata l'intelligenza artificiale",
          "Dove è nato Alan Turing?"]

query_embeddings = ef.encode_queries(queries)

# Connettersi a Zilliz Cloud con l'endpoint pubblico e la chiave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLEZIONE = "documenti"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(nome_raccolta=COLLEZIONE)
client.create_collection(
    nome_collezione=COLLEZIONE,
    dimensione=ef.dim,
    auto_id=True)

per doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
risultati = client.search(
    nome_collezione=COLLEZIONE,
    dati=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Per ulteriori informazioni, consultare la nostra [documentazione sul modello di inclusione di PyMilvus] (https://milvus.io/docs/embeddings.md).

Generare embeddings tramite l'SDK Python di OpenAI e inserirli in Zilliz Cloud per la ricerca semantica

da openai importare OpenAI
da pymilvus importare MilvusClient

OPENAI_API_KEY = "la tua-openai-api-chiave"
client = OpenAI(api_key=OPENAI_API_KEY)
# Generare embeddings per i documenti
doc_response = client.embeddings.create(
   input=[
   "L'intelligenza artificiale è stata fondata come disciplina accademica nel 1956",
   "Alan Turing è stato il primo a condurre una ricerca sostanziale sull'intelligenza artificiale",
   "Nato a Maida Vale, Londra, Turing è cresciuto nel sud dell'Inghilterra".
   ],
   model="text-embedding-3-small"
   )
doc_embeddings = [data.embedding for data in doc_response.data]

# Generare embeddings per le query
query_response = client.embeddings.create(
   input=["Quando è stata fondata l'intelligenza artificiale",
          "Dove è nato Alan Turing?"],
   model="text-embedding-3-small"
   )
query_embeddings = [data.embedding for data in query_response.data]

# Connettersi a Zilliz Cloud con l'endpoint pubblico e la chiave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLEZIONE = "documenti"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(nome_raccolta=COLLEZIONE)
client.create_collection(
    nome_collezione=COLLEZIONE,
    dimensione=1536,
    auto_id=True)

per doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
risultati = client.search(
    nome_collezione=COLLEZIONE,
    dati=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Per ulteriori informazioni, consultare OpenAI's Embedding Guide.