Yuki Takei 1 год назад
Родитель
Сommit
36294a9ffa
1 измененных файлов с 24 добавлено и 1 удалено
  1. 24 1
      apps/app/src/server/service/search-delegator/elasticsearch.ts

+ 24 - 1
apps/app/src/server/service/search-delegator/elasticsearch.ts

@@ -20,7 +20,8 @@ import type { PageModel } from '../../models/page';
 import { createBatchStream } from '../../util/batch-stream';
 import { configManager } from '../config-manager';
 import type { UpdateOrInsertPagesOpts } from '../interfaces/search';
-import { embed, fileUpload } from '../openai';
+import { embed, openaiClient, fileUpload } from '../openai';
+import { getOrCreateSearchAssistant } from '../openai/assistant';
 
 import { aggregatePipelineToIndex } from './aggregate-to-index';
 import type { AggregatedPage, BulkWriteBody, BulkWriteCommand } from './bulk-write';
@@ -858,6 +859,28 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
   }
 
   async appendVectorScore(query, queryString: string, username: string): Promise<void> {
+
+    const searchAssistant = await getOrCreateSearchAssistant();
+
+    // generate keywords for vector
+    const run = await openaiClient.beta.threads.createAndRunPoll({
+      assistant_id: searchAssistant.id,
+      thread: {
+        messages: [
+          { role: 'user', content: 'globalLang: "en_US", userLang: "ja_JP", user_input: "武井さんがジョインしたのはいつですか?"' },
+          { role: 'assistant', content: '武井さん 武井 takei yuki ジョイン join 入社 加入 雇用開始 年月日 start date join employee' },
+          { role: 'user', content: `globalLang: "en_US", userLang: "ja_JP", user_input: "${queryString}"` },
+        ],
+      },
+    });
+    const messages = await openaiClient.beta.threads.messages.list(run.thread_id, {
+      limit: 1,
+    });
+    const content = messages.data[0].content[0];
+    const keywordsForVector = content.type === 'text' ? content.text.value : queryString;
+
+    logger.debug('keywordsFor: ', keywordsForVector);
+
     const queryVector = (await embed(username, queryString))[0].embedding;
 
     query.body.query = {