Pinecone 플러그인

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, g, pinecone.Config{
	IndexID:  "menu_data",                                // Your Pinecone index
	Embedder: googleai.Embedder(g, "text-embedding-004"), // Embedding model of your choice
})
if err != nil {
	return err
}

원하는 경우 Pinecone이 문서 데이터에 사용하는 키를 지정할 수도 있습니다(기본값: _content).

그런 다음 색인의 Index() 메서드를 호출하여 추가할 문서 목록을 전달합니다.

if err := ai.Index(
	ctx,
	menuIndexer,
	ai.WithIndexerDocs(docChunks...)); err != nil {
	return err
}

마찬가지로 색인에서 문서를 검색하려면 먼저 검색기 정의를 만듭니다.

menuRetriever, err := pinecone.DefineRetriever(ctx, g, pinecone.Config{
	IndexID:  "menu_data",                                // Your Pinecone index
	Embedder: googleai.Embedder(g, "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

RAG에 색인 생성기 및 검색기 사용에 관한 일반적인 내용은 검색 증강 생성 페이지를 참조하세요.

생성형 AI 워크플로를 조정, 배포, 모니터링하기 위한 코드 중심 프레임워크입니다.

업데이트됨 Feb 25, 2025

생성형 AI 워크플로를 조정, 배포, 모니터링하기 위한 코드 중심 프레임워크입니다.

업데이트됨 Jan 25, 2025

생성형 AI 워크플로를 조정, 배포, 모니터링하기 위한 코드 중심 프레임워크입니다.

업데이트됨 Feb 25, 2025