このScrapboxを中心とするベクトル検索に関するプロジェクト

pVectorSearch2023-04-29~05-31 pVectorSearch2023-06-02 pVectorSearch2023-06-05 pVectorSearch2023-06-06 pVectorSearch2023-06-07 pVectorSearch2023-06-13 日記2023-06-15

新機能案 GETでURLフラグメントにScrapboxのページ名を渡す

  • Scrapbox側は新しいタブで開くUserScriptを作る
  • 受け取った側はクライアントJSでAPIを叩いて、クエリに積んで検索を掛ける
  • これで任意の公開プロジェクトから「ベクトル検索関連ページ」ができる
  • 検索履歴に内容が丸ごと乗るのはうざい
    • 関連ページ検索をした旨の履歴が出れば良い

新UI案 image

  • +はallで-はnoneです
    • 2023/6/26 いや説明しないと意味わからんからallとnoneって書けばいいじゃん

2023/6/20 出張中のスマホからの検索でエラーになった

  • その場では対処ができず今確認した
  • 問題が再現しない
  • Vercelの無料版なのでログは最大1時間らしい、もう何がエラーになったのかわからない とりあえず問題なく動いてそうなので今回はパス
  • ネクストアクション的にはSentry導入かな

新機能案

  • 検索結果から「それを積んでプロンプト実行」を可能にする
    • ダイジェスト
    • ロールプレイ

2023-06-21

  • client side
    • Unexpected token 'A', "An error o"... is not valid JSON
    • Failed to load resource: the server responded with a status of 504 ()
  • server side:
    • [POST] /api/search
    • Execution Duration / Limit 10.01s / 10s (timed out)
  • 単純にタイムアウトですな
    • タイムアウトの時のエラーメッセージを改善するとか、リトライするとかがネクストアクションかな

2023/6/26

  • 自分が非公開ソースを含めて検索した上で、それを含んだ検索結果をうっかりシェアする未来が見えた
    • 非公開ソースを含んでるならシェアボタンを出さないようにしよう

2023/6/27

  • エクスポート権限があることを前提に自動的にアップデートする仕組みを作る
  • 今のソースをフォークして/omoikane特化版をつくる
  • 新しく作る
  • 実験をしながら積み上げてるせいでソースコードがあちこちに散乱してるなぁ
    • 我ながら酷い
    • たまに整理しないと行方不明になる
  • etude-github-actionsリポジトリからexportのコードを複製
  • qdrantリポジトリから
    • pip freezeしてなかった
      • $ pip install -r requirements.txt
    • make_index_from_scrapbox.py
      • embedできた
      • Git LFSでキャッシュを保存
    • from_pickle_to_qdrant.py
      • qdrantに送るのもできた
      • コレクション名はomoikaneにした
        • 他の横断検索と一緒にするかどうか少し迷ったんだけど、わけとけば依存関係が少なくて話がシンプルなので
  • nishio-vecsearchからUI周り
    • 不必要な機能を削り落としてシンプルにする
  • デプロイ
    • あっ、しまった、データを突っ込む部分とサーバ実装は分けるべきだったか
    • Github Actionでデプロイが走ってしまう
    • そもそもエクスポート用のTSを見てVercelが混乱してる
      • あーあ
  • 素直に分けるべきか
    • ベクトルを入れるomoikane-embedと検索するomoikane-vecsearch
  • できた✅

2023-06-28

  • Omoikane Embed、100トークンで刻む機能を追加したら同じページからの重複ヒットが多くなったなぁ
  • 元に戻すのは簡単だが面白くない
  • 同一ページからは1件だけ取るようにするか
  • とか思ってたけど刻む方のコードをコミットし忘れてたので勝手に戻ってた、じゃあまあいいか