Closed suin closed 6 months ago
試しに調査してプロトタイプ作ってみます。🙌🏻
MDNのAI Help機能の仕組みが参考になりそう。 すべての記事に対して生成したembeddingsをSupabaseでホストしているPostgreSQLに格納していて、質問に関連した記事を取得してくる。その次に、OpenAIのAPIを叩いて最終的な回答を取得する。
https://developer.mozilla.org/en-US/blog/introducing-ai-help/#under_the_hood
一方でコンテンツの出し方およびクオリティに問題があるとAI Explain機能みたいにぷち炎上しそう。
https://developer.mozilla.org/en-US/blog/ai-explain-postmortem/
参考情報ありがとうございます!読んでみます!
試しにサンプルコードを使って「読んで学ぶTypeScript > 文」の記事を対象にBOTを構築してみました。 https://github.com/yytypescript/chat-bot
質問:
unkown型とany型の違いを教えてください。
回答:
unknown型とany型の違いは、以下の点です。
1. 代入の制約: any型はどのような型の変数にも代入できますが、unknown型の値は具体的な型への代入ができません。具体的な型が不明な場合に使用されます。
2. 型安全性: unknown型は型安全なany型とも言われます。unknown型の値は、具体的な型が不明なため、そのままではプロパティへのアクセスやメソッドの呼び出しができません。一方、any型は型安全性が低く、どのような操作でも許可されます。
3. プロパティへのアクセスとメソッドの呼び出し: unknown型の値は、プロパティへのアクセスやメソッドの呼び出しも許されません。一方、any型ではこれらの操作が許可されます。
unknown型は、具体的な型が不明な場合に使用され、型安全性を保つための制約があります。一方、any型は型安全性が低く、どのような操作でも許可されるため、注意が必要です。
TypeScriptコアチームからこんなのも出てる!
こちら、GPTsを使って改めて色々と実験しています。🤖
それっぽい回答は得られているのですが、参考情報のURLを提供させるといくつか課題がある状態です。
あなたはTypeScriptに関する質問を回答するエージェントです。
質問者のTypeScriptに関する質問に対して、docs.csvに含まれるデータに基づいて回答をしてください。
また、回答の最後にdocs.csvに含まれるデータに基づいて、質問に関連するページURLとタイトルを追記してください。URLは絶対に推測しないでください。
## URL表示について
・URLはMakrdown形式を使用せずに、タイトルとハイパーリンクを直接表示してください。
## docs.csvについて
docs.csvはサバイバルTypeScriptと呼ばれるOSSのドキュメントの情報をページごとにまとめたCSVファイルです。
・url: ページのURL
・title: ページのタイトル
・content: ページの本文
GPTs作ってみました。🤖
↓限定リンク https://chat.openai.com/g/g-EzVTRSzR7-sabaibarutypescript
GPTsとして公開されたので、このISSUEはクローズにします。🙌🏻 https://chat.openai.com/g/g-EzVTRSzR7-sabaibarutypescript
すごい!
ChatGPT Plusでないと使えないんですね 😢
URLがハルシネーション起こしてしまう問題に気づきました。致し方ないかもですが🥹
@hayashi-ay そうなんですよね。。。😭
現状、GPTsが有料プラン限定なので、全員に広く使ってもらおうとすると自前でインターフェース用意してAPI経由で機能を提供する必要がありますね
一旦公開して、次のステップでAPI経由にしても良さそうですね
URLのハルシネーション問題は、厳密に文脈データに基づいて回答するようにプロンプトを調整したら、発生確率は減らせるのですが、その分関連情報を見つけれないと言われる可能性が高くなってしまうので、精度のトレードオフはありました🙋🏻♂️
プロンプト改善は別途ISSUEとして改善していきたいですね❤️
プロンプトの例
質問者のTypeScriptに関する質問に対して、docs.jsonに含まれるデータに基づいて回答をしてください。
また、質問に関連するページの情報のurlとtitleを、docs.jsonに基づいて追記してください。urlはdocs.jsonに含まれるものだけを使用してください。
どうやってGPTにサバイバルTypeScriptのコンテンツを参照させたらいいか?
GPT搭載のチャットボットSaaSでも可