Gemini
Milvus berintegrasi dengan model Gemini melalui kelas GeminiEmbeddingFunction. Kelas ini menyediakan metode untuk menyandikan dokumen dan kueri menggunakan model Gemini yang telah dilatih sebelumnya dan mengembalikan sematan sebagai vektor padat yang kompatibel dengan pengindeksan Milvus. Untuk menggunakan fungsi ini, dapatkan kunci API dari Gemini dengan membuat akun di platform mereka.
Untuk menggunakan fitur ini, instal dependensi yang diperlukan:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Kemudian, instal GeminiEmbeddingFunction:
from pymilvus import model
gemini_ef = model.dense.GeminiEmbeddingFunction(
model_name='gemini-embedding-exp-03-07', # Specify the model name
api_key='YOUR_API_KEY', # Provide your OpenAI API key
)
Parameter:
model_name(string)
Nama model Gemini yang akan digunakan untuk pengkodean. Opsi yang valid adalah gemini-embedding-exp-03-07(default), models/embedding-001, dan models/text-embedding-004.
api_key(string)
Kunci API untuk mengakses API Gemini.
config(types.EmbedContentConfig) Konfigurasi opsional untuk model penyematan.
- Output_dimensionality dapat ditentukan untuk jumlah penyematan output yang dihasilkan.
- Task_type dapat ditentukan untuk menghasilkan penyematan yang dioptimalkan untuk tugas tertentu, sehingga menghemat waktu dan biaya serta meningkatkan kinerja. Hanya didukung dalam model gemini-embedding-exp-03-07.
| Nama Model | Dimensi |
|---|---|
| gemini-embedding-exp-03-07 | 3072(default),1536,768 |
| model/embedding-001 | 768 |
| model/text-embedding-004 | 768 |
| Jenis Tugas | Deskripsi |
|---|---|
| SEMANTIC_SIMILARITY | Digunakan untuk menghasilkan penyematan yang dioptimalkan untuk menilai kemiripan teks. |
| KLASIFIKASI | Digunakan untuk menghasilkan sematan yang dioptimalkan untuk mengklasifikasikan teks menurut label yang telah ditetapkan. |
| PENGELOMPOKAN | Digunakan untuk menghasilkan sematan yang dioptimalkan untuk mengelompokkan teks berdasarkan kemiripannya. |
| RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING, dan FACT_VERIFICATION | Digunakan untuk menghasilkan sematan yang dioptimalkan untuk pencarian dokumen atau pencarian informasi. |
| KUERI PENGAMBILAN_KODE | Digunakan untuk mengambil blok kode berdasarkan kueri bahasa alami, seperti mengurutkan larik atau membalikkan senarai bertautan. Penyematan blok kode dihitung menggunakan RETRIEVAL_DOCUMENT. |
Untuk membuat penyematan untuk dokumen, gunakan metode 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 = gemini_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", gemini_ef.dim, docs_embeddings[0].shape)
Keluaran yang diharapkan mirip dengan yang berikut ini:
Embeddings: [array([-0.00894029, 0.00573813, 0.013351 , ..., -0.00042766,
-0.00603091, -0.00341043], shape=(3072,)), array([ 0.00222347, 0.03725113, 0.01152256, ..., 0.01047272,
-0.01701597, 0.00565377], shape=(3072,)), array([ 0.00661134, 0.00232328, -0.01342973, ..., -0.00514429,
-0.02374139, -0.00701721], shape=(3072,))]
Dim: 3072 (3072,)
Untuk membuat sematan untuk kueri, gunakan metode encode_queries():
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = gemini_ef.encode_queries(queries)
# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", gemini_ef.dim, query_embeddings[0].shape)
Keluaran yang diharapkan mirip dengan yang berikut ini:
Embeddings: [array([-0.02066572, 0.02459551, 0.00707774, ..., 0.00259341,
-0.01797572, -0.00626168], shape=(3072,)), array([ 0.00674969, 0.03023903, 0.01230692, ..., 0.00160009,
-0.01710967, 0.00972728], shape=(3072,))]
Dim 3072 (3072,)