infoboxの実装詳細 takker
infoboxの実装詳細
infobox
という名前で
table記法を書いた時、その要素が
infoboxDefinition
に格納されている
hallucination
って書いてある時点でLLM使ってるの確定だ
ts// 新規に生えたpropertiesのみ
export interface Page {
infoboxDefinition: string[];
infoboxResult: InfoboxResultItem[];
}
export interface InfoboxResultItem {
hallucination: boolean;
infobox: Record<string, string>;
title: string;
truncated: boolean;
}
さらに、
関連ページリストのデータに該当する
RelatedPage
に、infobox用のpropertyが生えてる
tsexport interface RelatedPage {
infoboxResult: InfoboxResultItem[];
}
これらがページ下部のinfoboxに表示される
編集中の更新
LLMの生成が完了したタイミングや、ページデータが更新されたタイミングで、
ScrapboxのWebSocketから
infobox:reload
や
literal-database:reload
が送られてくる
infobox:reload
:infoboxの変更?
literal-database:reload
:おそらくLLMがデータを生成したときに出される
リンクデータや関連ページデータの更新差分をwebsocketから送っている実装と比べると、だいぶ大雑把な方法に感じる
今後修正する予定なのだろうな
最適化は使われ方がわかった後のほうがコスパ良い