Pinecone 플러그인은 Pinecone 클라우드 벡터 데이터베이스입니다.
구성
이 플러그인을 사용하려면 pinecone
패키지를 가져오고 pinecone.Init()
를 호출합니다.
import "github.com/firebase/genkit/go/plugins/pinecone"
if err := pinecone.Init(ctx, ""); err != nil {
return err
}
플러그인에는 Pinecone API 키가 필요합니다. 다음 중 하나를 실행하여 API 키를 사용하도록 플러그인을 구성합니다.
PINECONE_API_KEY
환경 변수를 API 키로 설정합니다.플러그인을 초기화할 때 API 키를 지정합니다.
if err := pinecone.Init(ctx, pineconeAPIKey); err != nil { return err }
그러나 API 키를 코드에 직접 삽입하지 마세요. 이 기능만 사용 Cloud Secret Manager 또는 이와 유사한 서비스와 함께 사용할 수 있습니다
용도
Pinecone 색인에 문서를 추가하려면 먼저 색인 및 사용 중인 임베딩 모델의 이름을 지정합니다.
menuIndexer, err := pinecone.DefineIndexer(ctx, pinecone.Config{
IndexID: "menu_data", // Your Pinecone index
Embedder: googleai.Embedder("text-embedding-004"), // Embedding model of your choice
})
if err != nil {
return err
}
원하는 경우 Pinecone이 문서 데이터에 사용하는 키를 지정할 수도 있습니다.
(기본값: _content
).
그런 다음 색인의 Index()
메서드를 호출하여 생성한 문서 목록을 전달합니다.
추가 대상:
if err := menuIndexer.Index(
ctx,
&ai.IndexerRequest{Documents: docChunks, Options: nil},
); err != nil {
return err
}
마찬가지로 색인에서 문서를 검색하려면 먼저 검색기를 만듭니다. 정의:
menuRetriever, err := pinecone.DefineRetriever(ctx, pinecone.Config{
IndexID: "menu_data", // Your Pinecone index
Embedder: googleai.Embedder("text-embedding-004"), // Embedding model of your choice
})
if err != nil {
return err
}
그런 다음 검색기의 Retrieve()
메서드를 호출하여 텍스트 쿼리를 전달합니다.
resp, err := menuRetriever.Retrieve(ctx, &ai.RetrieverRequest{
Document: ai.DocumentFromText(userInput, nil),
Options: nil,
})
if err != nil {
return err
}
menuInfo := resp.Documents
일반적인 내용은 검색 증강 생성 페이지를 참조하세요. 을 참조하세요.