Выполнение поиска по сходству во встроенном PDF-файле

Я встроил PDF-файл с помощью вложений OPENAI и сохранил его в локальном файле. По сути, я пытаюсь получить текстовый ввод, например: «кошка» и выполнить поиск по сходству. Я попробовал использовать следующую реализацию:

          const embedder = new OpenAIEmbeddings(); 
    const inputEmbedding = await embedder.embedQuery(input_prompt);
    const jsonString = fs.readFileSync('./embedded.json', 'utf-8');
    const book_embeddings = JSON.parse(jsonString);
    const ind = new HNSWLib(275);
    for (let i = 0; i < embeddings.length; i++) {
        ind.add(embeddings[i], i);
    }
    const k = 2;
    const result = ind.similaritySearch(inputEmbedding, k);
    console.log(result);

275 — это длина встроенного списка, представляющего PDF-файл. Когда я запускаю это, я получаю следующую ошибку: «Невозможно прочитать свойства неопределенного значения (чтение «индекса»)». Чего я не понимаю. Та же ошибка возникает, если я просто создаю экземпляр объекта HNSWLib. Это наводит на мысль, что что-то не так с тем, как я импортировал библиотеку. чтобы импортировать его, я использовал:import { HNSWLib } from "langchain/vectorstores/hnswlib"; . Мне удалось заставить его работать, создав векторное хранилище, начиная с необработанного текста PDF, адекватно разделенного на абзацы, что-то вродеconst vectorStore = await HNSWLib.fromTexts(), за которым следует текст, который вы хотите встроить, и встраивание. Однако это не то, что я ищу, потому что у меня уже есть встраивание PDF-документа. Если бы существовала такая функция, какHNSWLib.fromEmbeddings()это могло бы сработать, но, к сожалению, этого не существует. Какие-либо предложения? Спасибо

................................................................

0 ответов

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