milvus-logo
LFAI
홈페이지
  • 모델

OpenAI

Milvus는 OpenAIEmbeddingFunction 클래스를 통해 OpenAI의 모델과 통합됩니다. 이 클래스는 사전 학습된 OpenAI 모델을 사용하여 문서와 쿼리를 인코딩하고 임베딩을 Milvus 인덱싱과 호환되는 고밀도 벡터로 반환하는 메서드를 제공합니다. 이 기능을 활용하려면 해당 플랫폼에서 계정을 생성하여 OpenAI로부터 API 키를 받습니다.

이 기능을 사용하려면 필요한 종속성을 설치하세요:

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

그런 다음 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
)

매개변수를 인스턴스화합니다:

  • model_name(문자열)

    인코딩에 사용할 OpenAI 모델의 이름입니다. 유효한 옵션은 텍스트 임베딩-3-small, 텍스트 임베딩-3-large, 텍스트 임베딩-ada-002 (기본값)입니다.

  • api_key(문자열)

    OpenAI API에 액세스하기 위한 API 키입니다.

  • dimensions(int)

    결과 출력 임베딩이 가져야 하는 차원 수입니다. 텍스트 임베딩 3 이상 모델에서만 지원됩니다.

문서에 대한 임베딩을 만들려면 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)

예상 출력은 다음과 비슷합니다:

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,)

쿼리용 임베딩을 만들려면 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)

예상 출력은 다음과 유사합니다:

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,)

번역DeepL

목차 목록

Try Managed Milvus for Free

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

Get Started
피드백

이 페이지가 도움이 되었나요?