別のDiscourseサイトで「新着情報」を確認したところ、以下の表示がありました。
Discourseの多くのAIボットに慣れていたので、何か違う新しいものか確認したところ、そうでした。
これに関する告知カテゴリに単一のトピックはありましたか?見た記憶がありません。
別のDiscourseサイトで「新着情報」を確認したところ、以下の表示がありました。
Discourseの多くのAIボットに慣れていたので、何か違う新しいものか確認したところ、そうでした。
これに関する告知カテゴリに単一のトピックはありましたか?見た記憶がありません。
まだベータ版のような気がします。
Lounge で静かなオープンの告知がありました https://meta.discourse.org/t/help-us-test-ask-discourse-com/324441?u=pfaffman
「新機能」を通じてお客様にはお知らせしましたが、まだすべてのサイトにはお知らせしていません。まだ初期段階であり、現在のところホストされているお客様向けに若干調整されていますが、ほとんどの質問で多くの重複があることはもちろんのことです。
このフォーラムではラウンジへのアクセス権がありませんが、言っていることはわかります。
これは興味深い展開ですね。訪問者なら誰でも利用できるように、ペルソナにパブリック/ゲストアクセスを許可することについて Feature トピックを開設しようと考えていました。これは Discourse が検討するものでしょうか、それともこのひっそりとリリースされたテストインスタンスに関連するものなのでしょうか?
各ペルソナには許可されたグループ設定があるため、これで誰でも任意のペルソナを使用できるようになります。
申し訳ありません、もっと明確にすべきでした。ゲスト/匿名ユーザーを意味していました。これは、すべての読者に登録を期待するわけではありませんが、ドキュメントとチャットすることを許可したい doc-categories のようなユースケースに役立ちます。
ログインすらしていない、あるいは人間ですらない可能性のある人々にあなたのお金を使わせるのは、非常に危険なようです。
もちろん、IP/Cookieベースの制限、あるいはグローバルな安全のためのハードリミットも必要です。
サポート体験の向上に費用をかけることが問題になるとは思いません。Gitbookでドキュメントをホストする場合、最低でも年間1200ドルかかりますが、そのパッケージには訪問者がドキュメントとチャットできる機能が含まれています。私に言わせれば、これはCDCKにとって素晴らしい機会です😋
第二に、チャットボットが(カスタマーサポートの)コストを削減することに関するレポートはいくつかあります。
それはすべて真実です。私の言いたいのは、ログインしていない場合、それがあなたの顧客であるかどうかはわからないということです。
Discourse Ask は、すでに利用可能な AI ペルソナのいずれかを使用していますか、それともそれ専用に独自のペルソナを作成しましたか?
Askはカスタムペルソナを使用しており、meta.discourse.orgへのAPI呼び出しを行う2つのカスタムツールに依存しています。
一般公開の予定はありますか?
ここに「トップシークレット」なものはありません ![]()
これと非常によく似たテーマがあります。
そして、私たちが使用しているツールには次のスクリプトがあります。
let terms;
let API_KEY = "...";
const categories = {
61: "theme",
6: "support",
148: "data & reporting",
164: "Documentation > Hosted Customers",
177: "Community wiki",
31: "installation",
10: "Documentation",
22: "plugin",
1: "bug",
106: "migration",
120: "theme-component",
105: "community support program",
124: "General",
157: "site feedback > forum summaries",
152: "site feedback > theme feedback",
168: "Documentation > Contributing",
30: "releases",
126: "Documentation > Using Discourse",
2: "feature",
63: "praise > comparison",
9: "ux",
27: "dev > translations",
24: "sso",
3: "site feedback",
17: "Uncategorized",
14: "marketplace",
21: "support > wordpress",
13: "announcements > blog",
53: "Documentation > Site Management",
5: "plugin > extras",
65: "community",
8: "installation > hosting",
35: "praise",
67: "announcements",
178: "Community wiki > Administrators",
167: "Documentation > Integrations",
55: "Documentation > Self-Hosting",
169: "Documentation > Migrating to Discourse",
56: "Documentation > Developer Guides",
7: "dev",
179: "Community wiki > Developers",
181: "Community wiki > Users",
180: "Community wiki > Sysadmins"
};
function search(terms) {
const encoded = encodeURIComponent(terms);
const searchUrl = "https://meta.discourse.org/discourse-ai/embeddings/semantic-search.json?hyde=false&q=";
result = http.get(`${searchUrl}${encoded}`, {'Api-Key': API_KEY });
return processResults(JSON.parse(result.body));
}
function invoke(p) {
if (!p.question) {
terms = "No search performed!"
return "You must supply the question parameter";
}
terms = p.question;
let results = search(terms + " #documentation");
let otherResults = search(terms);
let topicIds = {};
results.forEach(topic => { topicIds[topic.topic_id] = topic });
otherResults.forEach(topic => {
if (topicIds[topic.topic_id]) {
return;
}
if (results.length > 15) {
return;
}
results.push(topic);
});
if (results.length === 0) {
return "No results found!"
} else {
return results;
}
}
function processResults(json) {
if (!json.topics) {
return [];
}
const postData = {};
json.posts.forEach( p => {
postData[p.topic_id] = p;
});
// todo meta category map
return json.topics.map(t => {
let result = {};
let post = postData[t.id];
result.url = `/t/${t.slug}/${t.id}`;
result.title = t.title;
result.blurb = post.blurb;
result.tags = t.tags;
result.topic_id = t.id;
result.category = categories[t.category_id];
return result;
});
}
function details() {
return "Searching for: " + terms
}
読み取りツールは次を使用します。
let topicId;
let url = "https://meta.discourse.org";
const API_KEY = "...";
let title = "Unknown topic";
function invoke(p) {
topicId = p.topicId;
let jsonUrl = `https://meta.discourse.org/t/${p.topic_id}.json?include_raw=true`;
result = http.get(jsonUrl, { 'Api-Key' : API_KEY });
try {
const parsed = JSON.parse(result.body);
url = `https://meta.discourse.org/t/${parsed.slug}/${parsed.id}`;
title = parsed.title;
let raw = parsed.post_stream.posts.map( post => {
let solution = "";
if (post.is_solution) {
solution = "(solution)";
}
return `post #${post.post_number}:${solution}\n${post.raw}`;
}).join("\n\n");
return llm.truncate(raw, 10000);
} catch {
return "Something went wrong, topic not found!"
}
}
function details() {
return `Read: <a href='${url}'>${title}</a>`;
}