import os
import time
from agno.agent import Agent
from agno.embedder.openai import OpenAIEmbedder
from agno.knowledge.pdf_url import PDFUrlKnowledgeBase
from agno.vectordb.couchbase import CouchbaseSearch
from couchbase.options import ClusterOptions, KnownConfigProfiles
from couchbase.auth import PasswordAuthenticator
# Couchbase 连接设置
username = os.getenv("COUCHBASE_USER", "Administrator")
password = os.getenv("COUCHBASE_PASSWORD", "password")
connection_string = os.getenv("COUCHBASE_CONNECTION_STRING", "couchbase://localhost")
# 创建带有身份验证的集群选项
auth = PasswordAuthenticator(username, password)
cluster_options = ClusterOptions(auth)
cluster_options.apply_profile(KnownConfigProfiles.WanDevelopment)
knowledge_base = PDFUrlKnowledgeBase(
urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=CouchbaseSearch(
bucket_name="recipe_bucket",
scope_name="recipe_scope",
collection_name="recipes",
couchbase_connection_string=connection_string,
cluster_options=cluster_options,
search_index="vector_search_fts_index",
embedder=OpenAIEmbedder(
id="text-embedding-3-large",
dimensions=3072,
api_key=os.getenv("OPENAI_API_KEY")
),
wait_until_index_ready=60,
overwrite=True
),
)
knowledge_base.load(recreate=True)
# 等待向量索引与 KV 同步
time.sleep(20)
agent = Agent(knowledge=knowledge_base, show_tool_calls=True)
agent.print_response("How to make Thai curry?", markdown=True)
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
启动 Couchbase
docker run -d --name couchbase-server \
-p 8091-8096:8091-8096 \
-p 11210:11210 \
-e COUCHBASE_ADMINISTRATOR_USERNAME=Administrator \
-e COUCHBASE_ADMINISTRATOR_PASSWORD=password \
couchbase:latest
然后访问 http://localhost:8091 并创建:
recipe_bucket
recipe_scope
recipes
安装库
pip install -U couchbase openai agno
设置环境变量
export COUCHBASE_USER="Administrator"
export COUCHBASE_PASSWORD="password"
export COUCHBASE_CONNECTION_STRING="couchbase://localhost"
export OPENAI_API_KEY="your-openai-api-key"
运行 Agent
python cookbook/agent_concepts/vector_dbs/couchbase.py