milvus-logo
LFAI
Home
  • Modelos

OpenAI

O Milvus integra-se com os modelos da OpenAI através da classe OpenAIEmbeddingFunction. Esta classe fornece métodos para codificar documentos e consultas utilizando os modelos pré-treinados da OpenAI e devolver os embeddings como vectores densos compatíveis com a indexação Milvus. Para utilizar esta funcionalidade, obtenha uma chave de API da OpenAI criando uma conta na sua plataforma.

Para utilizar esta funcionalidade, instale as dependências necessárias:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

De seguida, instancie a OpenAIEmbeddingFunction:

from pymilvus import model

openai_ef = model.dense.OpenAIEmbeddingFunction(
    model_name='text-embedding-3-large', # Specify the model name
    api_key='YOUR_API_KEY', # Provide your OpenAI API key
    dimensions=512 # Set the embedding dimensionality
)

Parâmetros:

  • nome_do_modelo(string)

    O nome do modelo OpenAI a utilizar para a codificação. As opções válidas são text-embedding-3-small, text-embedding-3-large e text-embedding-ada-002 (predefinição).

  • api_key(string)

    A chave da API para aceder à API OpenAI.

  • dimensões(int)

    O número de dimensões que os embeddings de saída resultantes devem ter. Suportado apenas em modelos text-embedding-3 e posteriores.

Para criar embeddings para documentos, use o método 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 = openai_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", openai_ef.dim, docs_embeddings[0].shape)

O resultado esperado é semelhante ao seguinte:

Embeddings: [array([ 1.76741909e-02, -2.04964578e-02, -1.09788161e-02, -5.27223349e-02,
        4.23139781e-02, -6.64533582e-03,  4.21088142e-03,  1.04644023e-01,
        5.10009527e-02,  5.32827862e-02, -3.26061808e-02, -3.66494283e-02,
...
       -8.93232748e-02,  6.68255147e-03,  3.55093405e-02, -5.09071983e-02,
        3.74144339e-03,  4.72541340e-02,  2.11916920e-02,  1.00753829e-02,
       -5.76633997e-02,  9.68257990e-03,  4.62721288e-02, -4.33261096e-02])]
Dim: 512 (512,)

Para criar embeddings para consultas, utilize o método encode_queries():

queries = ["When was artificial intelligence founded", 
           "Where was Alan Turing born?"]

query_embeddings = openai_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", openai_ef.dim, query_embeddings[0].shape)

O resultado esperado é semelhante ao seguinte:

Embeddings: [array([ 0.00530251, -0.01907905, -0.01672608, -0.05030033,  0.01635982,
       -0.03169853, -0.0033602 ,  0.09047844,  0.00030747,  0.11853652,
       -0.02870182, -0.01526102,  0.05505067,  0.00993909, -0.07165466,
...
       -9.78106782e-02, -2.22669560e-02,  1.21873049e-02, -4.83198799e-02,
        5.32377362e-02, -1.90469325e-02,  5.62430918e-02,  1.02650477e-02,
       -6.21757433e-02,  7.88027793e-02,  4.91846527e-04, -1.51633881e-02])]
Dim 512 (512,)

Traduzido porDeepLogo

Tabela de conteúdos

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?