importloggingimportosimportsyslogging.basicConfig(stream=sys.stdout,level=logging.INFO)logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))frompgvecto_rs.sdkimportPGVectoRsURL="postgresql+psycopg://{username}:{password}@{host}:{port}/{db_name}".format(port=os.getenv("DB_PORT","5432"),host=os.getenv("DB_HOST","localhost"),username=os.getenv("DB_USER","postgres"),password=os.getenv("DB_PASS","mysecretpassword"),db_name=os.getenv("DB_NAME","postgres"),)client=PGVectoRs(db_url=URL,collection_name="example",dimension=1536,# Using OpenAI’s text-embedding-ada-002)
接着配置 OpenAI API 密钥,并将文档加载到数据库中。
importosos.environ["OPENAI_API_KEY"]="sk-..."fromllama_indeximportSimpleDirectoryReader,VectorStoreIndexfromllama_index.vector_storesimportPGVectoRsStore# load documentsdocuments=SimpleDirectoryReader("./src/getting-started/overview.md").load_data()# initialize without metadata filterfromllama_index.storage.storage_contextimportStorageContextvector_store=PGVectoRsStore(client=client)storage_context=StorageContext.from_defaults(vector_store=vector_store)index=VectorStoreIndex.from_documents(documents,storage_context=storage_context)
查询索引
最后,我们可以检索最相似的文档片段。
# set Logging to DEBUG for more detailed outputsquery_engine=index.as_query_engine()response=query_engine.query("What did the author do growing up?")