Использование Ollama с Vector DB#

Ollama предоставляет специализированные вложения для узкоспециализированных приложений. Ollama поддерживает разнообразие моделей вложений, что позволяет создавать приложения с расширенной генерацией поиска (RAG), объединяющие текстовые подсказки с существующими документами или другими данными в специализированных областях.

Установка#

Можно установить необходимые пакеты, используя следующую команду pip:

pip install ollama qdrant-client

Пример интеграции#

Следующий код предполагает, что Ollama доступна по порту 11434 и Platform V Vector DB (далее - Vector DB) по порту 6334.

from qdrant_client import QdrantClient, models
import ollama

COLLECTION_NAME = "NicheApplications"

# Initialize Ollama client
oclient = ollama.Client(host="localhost")

# Initialize Qdrant client
qclient = QdrantClient(host="localhost", port=6333)

# Text to embed
text = "Ollama excels in niche applications with specific embeddings"

# Generate embeddings
response = oclient.embeddings(model="llama3.2", prompt=text)
embeddings = response["embedding"]

# Create a collection if it doesn't already exist
if not qclient.collection_exists(COLLECTION_NAME):
    qclient.create_collection(
        collection_name=COLLECTION_NAME,
        vectors_config=models.VectorParams(
            size=len(embeddings), distance=models.Distance.COSINE
        ),
    )

# Upload the vectors to the collection along with the original text as payload
qclient.upsert(
    collection_name=COLLECTION_NAME,
    points=[models.PointStruct(id=1, vector=embeddings, payload={"text": text})],
)