それによれば、関数の呼び出しはツールの呼び出しの結果をプロンプトにプッシュするはずであるということで合っていますか?
ですから、おそらくプロンプトを更新しているのでしょうが、デバッグツールから表示されるリクエストからはそれが明確ではありませんか?
[quote=“aas, post:8, topic:311499”]
-
- このツールの使い方を誤解していますか?Discourseの検索を行い、検索結果(つまり、見つかったトピックの内容)をRAGに使用することを期待していました。
例えば、このリクエストを参照してください。
リクエストJSON
{"model":"gpt-4","messages":[{"role":"system","content":"あなたはAnkiHubアドオンとWebアプリを専門とするAnkiユーザー向けのフレンドリーで役立つアシスタントです。\nDiscourse Markdownを理解し、生成します。\nあなたはDiscourseフォーラムメッセージ内にいます。\n\nあなたはURLが https://community.ankihub.net のフォーラムにいます。\nAnkiとAnkiHubの使用に関する質問に特化して回答します。\nこの会話の参加者は: gpt4_bot, andrew\n現在の日時は: 2024-06-13 18:29:19 UTC であり、トレーニング以降多くのことが変更されています。\n古いデータでトレーニングされているため、最新の情報については検索に頼ってください。\n検索する際は、検索用語を簡略化するようにしてください。\nDiscourseの検索はすべての用語をANDで結合します。より多くの結果を見つけるために、用語を減らして簡略化してください。"},{"role":"user","content":"他のユーザーのためにアカウントを購入し、プライベートデッキに自動的に購読させることができますか?","name":"andrew"},{"role":"assistant","content":null,"tool_calls":[{"type":"function","function":{"arguments":"{\"search_query\":\"purchase accounts for other users subscribe private decks\"}","name":"search"},"id":"call_fmzwIbU4ravFRKWRsOQlqGBq"}]},{"role":"tool","tool_call_id":"call_fmzwIbU4ravFRKWRsOQlqGBq","content":"{\"column_names\":[\"title\",\"url\",\"username\",\"excerpt\",\"created\",\"category\",\"likes\",\"topic_views\",\"topic_likes\",\"topic_replies\",\"tags\"],\"rows\":[[「👪 Organizations」,\"/t/organizations/166454/1\",\"andrew\",\"<a name=\\\"what-are-ankihub-organizations-1\\\" class=\\\"anchor\\\" href=\\\"#what-are-ankihub-organizations-1\\\"></a>AnkiHub Organizationsとは\nAnkiHub Organizationsにより、Organization Ownerは他のユーザーのためにAnkiHubを購入し、それらのユーザーをOrganizationに招待できます。\nAnkiHub Organizationsは次のように機能し、次の機能があります:\n<a name=\\\"linked-decks-2\\\" class=\\\"anchor\\\" href=\\\"#linked-decks-2\\\"></a>Linked Decks\nあなたの組織のユーザーは自動的にアクセスできるようになります…\",「2024-02-08T17:44:27.842Z」、「🎓 Docs > 🤝 Create & Collaborate」、1,166,1,1],[「学校にクラスのためにAnkiHubを購入してもらうにはどうすればよいですか?」,\"/t/how-can-i-get-my-school-to-buy-ankihub-for-my-class/228569/1\",\"andrew\",\"一部の学生は学校にクラスのためにAnkiHubメンバーシップをスポンサーしてもらうことに成功しています。そのためには、学校はAnkiHub Organizationを作成する必要があります:\n\n\n:bulb: 学校にAnkiHubを購入してもらうためのヒントをいくつか紹介します:\n\n学校の学生自治会の担当者または医学部と連絡を取る…\",「2024-05-23T21:40:37.477Z」、「❓ FAQs」、0,50,0,1],[「AnkiHubサブスクリプションが終了するとどうなりますか?」,\"/t/what-happens-after-my-ankihub-subscription-ends/167190/1\",\"Ahmed7\",\"AnkiHubへのサブスクリプションが期限切れになり、更新したくない場合。\nすべてのデッキはそのまま残り、何も削除されません。ただし、AnkiHubとの同期やデッキの新しい変更の受信はできなくなり、既存のデッキへの新しい変更やノートの提案もできなくなります…\",「2024-02-10T06:14:53.787Z」、「❓ FAQs」、0,307,0,1],[「AnkiHubを購入する余裕がない場合はどうなりますか?」,\"/t/what-if-i-cant-afford-ankihub/167280/1\",\"Ahmed7\",\"AnkiHubには、割引価格でアクセスできる奨学金プログラムがあります。こちらから申請してください。\n(申請する前にAnkiHubアカウントにサインアップする必要があります)。\",「2024-02-10T13:58:24.842Z」、「❓ FAQs > AnKing Decks」、0,445,0,1,\"anking-wiki\"],[「AnkiHubは割引を提供していますか?」,\"/t/does-ankihub-offer-discounts/228564/1\",\"andrew\",\"現在、AnkiHubの割引を受ける方法は2つあります:\n\n年間請求オプションを購入して、年間1ヶ月無料にする\n\nAnkiHubは、年間請求割引により月額$4.58/ユーザーで利用できます。残念ながら、これ以上AnkiHubを割引することはできません。\n\n\nアンバサダープログラムに参加する\n\n…\",「2024-05-23T21:34:32.829Z」、「❓ FAQs」、0,90,0,1]],\"args\":{\"search_query\":\"purchase accounts for other users subscribe private decks\"}}","name":"search"}],\"stream\":true,\"stream_options\":{\"include_usage\":true},\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"search\",\"description\":\"現在のDiscourseインスタンスのトピックを検索します。レンダリング時には、見つけたトピックへのリンクを常に優先してください\",\"parameters\":{\"type\":\"object\",\"properties\":{\"search_query\":{\"description\":\"検索する具体的なキーワード、スペース区切り(スペルミスを修正し、接続詞を削除)\",\"type\":\"string\"},\"user\":{\"description\":\"検索結果をこのユーザー名に絞り込む(ユーザーが明示的にユーザーによる絞り込みを求めた場合にのみ含める)\",\"type\":\"string\"},\"order\":{\"description\":\"検索結果の順序\",\"type\":\"string\",\"enum\":[\"latest\",\"latest_topic\",\"oldest\",\"views\",\"likes\"]},\"limit\":{\"description\":\"返される結果の数(通常はデフォルトのままにしておくことを推奨)\",\"type\":\"integer\"},\"max_posts\":{\"description\":\"トピックの最大投稿数(多くの人が投稿したトピック)\",\"type\":\"integer\"},\"tags\":{\"description\":\"検索するタグのリスト。ORで結合するには+を使用し、ANDで結合するには,を使用\",\"type\":\"string\"},\"category\":{\"description\":\"絞り込むカテゴリ名\",\"type\":\"string\"},\"before\":{\"description\":\"指定した日付(YYYY-MM-DD)より前に作成されたトピックのみ\",\"type\":\"string\"},\"after\":{\"description\":\"指定した日付(YYYY-MM-DD)より後に作成されたトピックのみ\",\"type\":\"string\"},\"status\":{\"description\":\"特定の状態のトピックを検索\",\"type\":\"string\",\"enum\":[\"open\",\"closed\",\"archived\",\"noreplies\",\"single_user\"]}},\"required\":[]}}},{\"type\":\"function\",\"function\":{\"name\":\"read\",\"description\":\"このDiscourseインスタンスのトピックまたは投稿を読み取ります\",\"parameters\":{\"type\":\"object\",\"properties\":{\"topic_id\":{\"description\":\"読み取るトピックのID\",\"type\":\"integer\"},\"post_numbers\":{\"description\":\"読み取る投稿番号(オプション)\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}},\"required\":[\"topic_id\"]}}}]}\n```\n[/quote]
すべてのコンテキストが表示されると期待すべきではないのでしょうか?もしそうでないなら、アップロードでRAGを行うペルソナを使用しているときにプロンプトのコンテキスト全体が表示されるため、混乱します。
報告されている結果の数についても、まだ混乱しています。
とはいえ、システムプロンプトに以下を追加した後、結果は大幅に改善されています!
- 常にsearch関数とread関数の両方を呼び出してください。
- search関数は3回を超えて呼び出さないでください。
- search関数を呼び出す際には、categoryパラメータには常に「docs,faqs」を使用してください。
これが正しく設定されれば、まさにゲームチェンジャーになるでしょう。
ご存知かどうかわかりませんが、あなたは[Intercom](https://www.intercom.com/)が達成しようとしていることよりもはるかに強力なものを事実上私たちに提供しています。
すでにIntercomのメッセンジャーを乗っ取ろうとして、ユーザーをDiscourse AIに直接誘導しています :nerd_face: :

AnkiHub AIリンクは、次のようなリンクを持つAI Botへのプライベートメッセージを開きます:`/new-message?username=ankihubai_bot`