generated at
infoboxの実装詳細 takker
infoboxの実装詳細takker
infobox という名前でtable記法を書いた時、その要素が infoboxDefinition に格納されている
hallucination って書いてある時点でLLM使ってるの確定だ
Page.infoboxResult infobox-menuに表示されるinfoboxのデータ
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が生えてる
ts
export interface RelatedPage { infoboxResult: InfoboxResultItem[]; }
infoboxResult ProjectRelatedPage (External Linksのデータ)には生えていない
これらがページ下部のinfoboxに表示される
編集中の更新
LLMの生成が完了したタイミングや、ページデータが更新されたタイミングで、ScrapboxのWebSocketから infobox:reload literal-database:reload が送られてくる
infobox:reload :infoboxの変更?
literal-database:reload :おそらくLLMがデータを生成したときに出される
これらが送られてきたらapi/pages/:project/:titleを叩き直してデータを更新している
リンクデータや関連ページデータの更新差分をwebsocketから送っている実装と比べると、だいぶ大雑把な方法に感じるtakker
今後修正する予定なのだろうな
最適化は使われ方がわかった後のほうがコスパ良い基素