尊敬的 Discourse 团队:
Discourse 能够总结长帖子。我的理解是,它使用参与度指标(如点赞或回复数量)来识别应保留哪些帖子。在我的社区(公司内部沟通)中,尽管帖子有 20 页长,但这几乎从未触发(回复数量对我们来说不是最佳触发器)。
更强大的方法是使用像 GPT-3 或 BERT 这样的 LLM 来按需总结整个帖子(而不是仅仅过滤帖子)。总结是 LLM 大放异彩的用例(几乎是海报儿童),我相信这比当前基于弱信号的方法(在某些社区中,人们可能不使用点赞或回复特定帖子)要有效得多。
另一方面,运行 GPT 来总结文本可能很昂贵,每 1k 个 token 高达 0.02 美元。此功能可能在一些私有社区中比高流量公共社区更有意义。
我设想该功能的工作方式如下:
- 首次阅读一个长帖子时(长帖子由设置定义),如果从未总结过,则按需提供总结选项。
- 总结将插入到帖子中(例如:之前的所有内容都已总结)。
- 它将从帖子顶部链接(例如:跳转到总结)。
- 理想情况下,会有一个
反馈机制。
- 在增加 N 条回复后,提供发布新总结并更新顶部的链接。
- 该插件将使用 openai 密钥进行配置(假设这是使用的 LLM)。最终,如果证明成功,您将希望提供访问不同模型的权限。
至少这是理论
。在实践中,关于它能有多好,或者如何配置总结的程度,都存在未知数。我的直觉是,这对某些社区来说是极高的投资回报率。我听到的首要问题是,人们讨厌追赶帖子。这将是巨大的帮助。
有什么想法?
8 个赞
sam
(Sam Saffron)
3
我们的人工智能团队当然在探索这个领域。摘要是最有趣的可能之一。
一旦我们有东西可以展示,我们会在这里回复。
8 个赞
sam
(Sam Saffron)
4
FWIW:
import openai
import requests
from bs4 import BeautifulSoup
openai.api_key = "KEY"
url = "https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951.json"
response = requests.get(url)
data = response.json()
messages = []
messages.append("Title: " + data["title"])
for post in data['post_stream']['posts']:
soup = BeautifulSoup(post['cooked'], 'html.parser')
messages.append("Post #" + str(post["post_number"]) + " by " + post["username"])
messages.append(soup.get_text())
text_blob = "\n".join(messages)
print(text_blob)
max_chunk_len = 4000 # Maximum length of each chunk
chunks = [text_blob[i:i+max_chunk_len] for i in range(0, len(text_blob), max_chunk_len)]
summaries = []
for chunk in chunks:
print("processing chunk")
response = openai.Completion.create(
engine="text-davinci-003",
prompt="prompt:\n" + chunk + "\nsummary:",
temperature=0.7,
max_tokens=200,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
summary = response.choices[0].text.strip()
print("\nSUMMARY")
print(summary)
print("\nSUMMARY")
Discourse 正在探索使用类似 GPT-3 或 BERT 的 LLM 按需总结长帖子的可能性。此功能将使用 openai 密钥进行配置,对于私有社区尤其有用。总结将插入到帖子中,顶部有一个链接和一个反馈机制。AI 团队目前正在探索此可能性,并将在有东西展示时进行更新。
很有趣,但相当参差不齐
9 个赞
我今天忍不住试了一下:
它还处于非常实验性的阶段,目前几乎没有防止出现问题的保障措施,所以绝对_不_适合专业用途(!!)
请注意,由于令牌限制,目前只能考虑前约 40 篇帖子(基于我论坛的活动)。
有一个点踩系统。UI 预览:
(顺便说一句,这个例子是基于开发夹具中相当随机的数据,在真实数据上表现_好得多)。
顺便说一句,到目前为止,我为构建这个东西花费了 0.33 美元 
(18 美元是免费额度)
8 个赞
@Julienlavigne 我在稳定性、灵活性和管理反馈方面对此进行了重大改进。
例如,模型返回的错误现在会被记录下来,因此您现在可以轻松地知道是否已超出模型限制。
如果您(或任何人)想尝试一下,我可以在一段时间内提供一些随意的支持,并且在合理的情况下可以采纳反馈。
完整的设置集现在是:
5 个赞
@merefield 听起来太棒了!
遗憾的是,我使用的是 Discourse 的商业版本,无法部署自定义插件,因此无法轻松测试。不过,我可能会尝试在本地运行 Discourse 并使用备份进行测试。我会及时向您汇报。
3 个赞
我的插件长期以来一直提供这个。
CDCK 随后也发布了 Discourse AI 插件,其中包含一个类似的摘要解决方案。
随意使用。
谢谢 @merefield Robert,是的,我看到了,感谢你在这方面所做的工作。但我希望 @sam(或有 Discourse 支持的人)正在开发一个 LLM 摘要功能,并与原生 Discourse 完全集成。显然,如果 Discourse 的商业计划客户只需要为他们自己的 OpenAI(或最终确定的任何提供商)密钥额外付费,那么从配置、高级兼容性和维护的角度来看,这将更加简单。一切顺利。
1 个赞
我无法代表 CDCK 发表评论,但这里的细微差别在于,我怀疑许多网站更希望这是可选的,因为有些网站对人工智能感到紧张(而另一些则希望完全拥抱它)。
因此,我怀疑这将仍然是一个可选的插件,并允许 CDCK 根据他们和客户的意愿定制产品。
然而,从工程师的角度来看,这几乎可以提供完全原生的体验,并且在功能上不会带来任何有意义的限制。
我无法谈论账单/openai 账户配置。
sam
(Sam Saffron)
12
嗨 Mike,我们最近推出了 ai bot,请看:
现在您的安装已可用,您可以为 anthropic 或 openai 插入凭据。
关于路线图,我们正在考虑下一步推出“embedding”,这将为您提供语义相关的主题。在此之后,我认为接下来的两个将是 ai helper 和 summary。
我无法给出这些功能将在 business plan 上推出的确切日期,但我们打算在未来几个月内推出它们。
Self hosters 和 enterprise 客户今天就可以访问它们。
Summarization(摘要)尤其有趣,我们正在购买几台 A100 服务器,并将在未来几周内投入使用。Mistral 的能力和速度令人惊讶,一旦我们部署了容量,我们甚至可能能够为 business plan 提供摘要,而无需自带密钥,但在此之前我们需要先探索性能特征,然后再做出任何承诺。
4 个赞
mikessmt
(mike)
13
谢谢你,Sam。我们对这个功能非常感兴趣,我猜其他托管客户也会感兴趣。祝一切顺利。
1 个赞