Реализация семантического поиска в конкретных документах и ​​использование метода и метаданных Vectorstore.asRetriever() JavaScript LangChain

Я пытаюсь понять, какvectorstore.asRetriever()метод действует.

Это упражнение направлено на управление семантическим поиском с использованием фильтра метаданных, ориентированного на конкретные документы. Могут быть случаи, когда мне нужно получить документ на основе метаданных, помеченных какcode, который уникален и функционирует аналогичноID. В таких случаях семантический поиск необходимо будет выполнить только по этому конкретному документу из 100 тысяч документов, хранящихся в базе данных Pinecone.

Как я могу реализовать это? Есть ли альтернативный подход? Я пытался найти решения в документации LangChain JS, но пока не нашел.

Мой код:

      export const makeChain = (vectorstore: PineconeStore) => {
  const model = new OpenAI({
    temperature: 0,
    modelName: 'gpt-3.5',
  });

  const metadataFilter = { location: 'Paris' };

  const chain = ConversationalRetrievalQAChain.fromLLM(
    model,
    vectorstore.asRetriever(10, metadataFilter),
    {
      qaTemplate: QA_PROMPT,
      questionGeneratorTemplate: CONDENSE_PROMPT,
      returnSourceDocuments: true,
    },
  );
  return chain;
};

Документация

      asRetriever()

asRetriever(k?: number, filter?: object): VectorStoreRetriever<VectorStore>

Parameters:
Parameter   Type
k?          number
filter?     object
Returns

VectorStoreRetriever<VectorStore>
        asRetriever(
    k?: number,
    filter?: this["FilterType"]
  ): VectorStoreRetriever<this> {
    return new VectorStoreRetriever({ vectorStore: this, k, filter });
  }
}

0 ответов

Другие вопросы по тегам