# 使用 LLM（GPT、BERT 等）总结主题？

**URL:** <https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951>\
**Category:** Feature\
**Created:** [2023年二月13日 06:27 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951 "2023-02-13T06:27:55Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Julienlavigne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/julienlavigne/32/295051_2.png) [@Julienlavigne](https://meta.discourse.org/u/Julienlavigne)\
**Post date:** [2023年二月13日 06:27 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/1 "2023-02-13T06:27:55Z")

</div>

尊敬的 Discourse 团队：

Discourse 能够总结长帖子。我的理解是，它使用参与度指标（如点赞或回复数量）来识别应保留哪些帖子。在我的社区（公司内部沟通）中，尽管帖子有 20 页长，但这几乎从未触发（回复数量对我们来说不是最佳触发器）。

更强大的方法是使用像 GPT-3 或 BERT 这样的 LLM 来按需总结整个帖子（而不是仅仅过滤帖子）。总结是 LLM 大放异彩的用例（几乎是海报儿童），我相信这比当前基于弱信号的方法（在某些社区中，人们可能不使用点赞或回复特定帖子）要有效得多。

另一方面，运行 GPT 来总结文本可能[很昂贵](https://openai.com/api/pricing/)，每 1k 个 token 高达 0.02 美元。此功能可能在一些私有社区中比高流量公共社区更有意义。

我设想该功能的工作方式如下：

- 首次阅读一个长帖子时（长帖子由设置定义），如果从未总结过，则按需提供总结选项。
- 总结将插入到帖子中（例如：之前的所有内容都已总结）。
- 它将从帖子顶部链接（例如：跳转到总结）。
- 理想情况下，会有一个 👍 👎 反馈机制。
- 在增加 N 条回复后，提供发布新总结并更新顶部的链接。
- 该插件将使用 openai 密钥进行配置（假设这是使用的 LLM）。最终，如果证明成功，您将希望提供访问不同模型的权限。

至少这是理论 🙂。在实践中，关于它能有多好，或者如何配置总结的程度，都存在未知数。我的直觉是，这对某些社区来说是极高的投资回报率。我听到的首要问题是，人们讨厌追赶帖子。这将是巨大的帮助。

有什么想法？

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年二月15日 01:40 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/3 "2023-02-15T01:40:28Z")

</div>

我们的人工智能团队当然在探索这个领域。摘要是最有趣的可能之一。

一旦我们有东西可以展示，我们会在这里回复。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年二月18日 10:08 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/4 "2023-02-18T10:08:52Z")

</div>

FWIW:

```python
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 团队目前正在探索此可能性，并将在有东西展示时进行更新。

很有趣，但相当参差不齐

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年二月21日 22:33 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/5 "2023-02-21T22:33:54Z")

</div>

我今天忍不住试了一下：

> **[GitHub - merefield/discourse-ai-topic-summary: Uses a remote AI language model to prepare and...](https://github.com/merefield/discourse-ai-topic-summary)**
>
> Uses a remote AI language model to prepare and post a summary of a Topic

它还处于非常实验性的阶段，目前几乎没有防止出现问题的保障措施，所以绝对\_不\_适合专业用途（！！）

请注意，由于令牌限制，目前只能考虑前约 40 篇帖子（基于我论坛的活动）。

有一个点踩系统。UI 预览：

（顺便说一句，这个例子是基于开发夹具中相当随机的数据，在真实数据上表现\_好得多）。

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/f/4/2f44f29bd635282bbc84001435dd4d2a8488ea73.png)

顺便说一句，到目前为止，我为构建这个东西花费了 0.33 美元 😃

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/e/4/9e42ef05c5a0becb0617a4edbb85847cab23651c.png)

（18 美元是免费额度）

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年二月23日 09:45 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/6 "2023-02-23T09:45:32Z")

</div>

@Julienlavigne 我在稳定性、灵活性和管理反馈方面对此进行了重大改进。

例如，模型返回的错误现在会被记录下来，因此您现在可以轻松地知道是否已超出模型限制。

如果您（或任何人）想尝试一下，我可以在一段时间内提供一些随意的支持，并且在合理的情况下可以采纳反馈。

完整的设置集现在是：

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/9/e/89e90b26e083b19bfb7f1880dc68c58c2a0a4ca5.png)

---

<div class="post-metadata">

**Author:** ![Julienlavigne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/julienlavigne/32/295051_2.png) [@Julienlavigne](https://meta.discourse.org/u/Julienlavigne)\
**Post date:** [2023年二月25日 07:36 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/7 "2023-02-25T07:36:24Z")

</div>

@merefield 听起来太棒了！

遗憾的是，我使用的是 Discourse 的商业版本，无法部署自定义插件，因此无法轻松测试。不过，我可能会尝试在本地运行 Discourse 并使用备份进行测试。我会及时向您汇报。

---

<div class="post-metadata">

**Author:** ![mikessmt](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mikessmt](https://meta.discourse.org/u/mikessmt)\
**Post date:** [2023年十一月1日 01:15 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/8 "2023-11-01T01:15:25Z")

</div>

> [@sam](#):
>
> Discourse 正在探索使用类似 GPT-3 或 BERT 的 LLM 按需总结长帖的可能性。此功能将使用 openai 密钥进行配置，对于私有社区尤其有用。总结将插入到帖子中，顶部有一个链接和一个反馈机制。AI 团队目前正在探索此可能性，有进展时会进行更新。

@sam 这项工作有进展吗？

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年十一月1日 02:09 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/9 "2023-11-01T02:09:11Z")

</div>

我的插件长期以来一直提供这个。

> [@Discourse AI Topic Summary robot](https://meta.discourse.org/t/discourse-ai-topic-summary-automated-summaries-and-smart-tagging/256711?u=merefield):
>
> information_sourceSummary Uses a remote AI language model to prepare and post a summary of a topic.hammer_and_wrenchRepository Link [GitHub - merefield/discourse-ai-topic-summary: Uses a remote AI language model to prepare and post a summary of a Topic](https://github.com/merefield/discourse-ai-topic-summary)open_bookInstall Guide [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157)heartSponsorship Please consider becoming an ongoing [sponsor of my open source work](https://github.com/sponsors/merefield) at a level that suits your or your organisation’s resources and needs to en…

CDCK 随后也发布了 Discourse AI 插件，其中包含一个类似的摘要解决方案。

> [@Discourse AI - Summarize](https://meta.discourse.org/t/discourse-ai-summarization/262711?u=merefield):
>
> bookmark This topic covers the configuration of the Summarize feature of the [Discourse AI](https://meta.discourse.org/t/discourse-ai/259214?slient=true) plugin. person_raising_hand Required user level: Administrator Summarize topics and chat channels for a quick recap. Use it in mega topics and large discussions to figure out what’s happening. Features Summarize topics from topic map (top and bottom of topic) Summarize Chat channels for specific duration of time (up to 7 days) Cached summaries in prior gen…

随意使用。

---

<div class="post-metadata">

**Author:** ![mikessmt](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mikessmt](https://meta.discourse.org/u/mikessmt)\
**Post date:** [2023年十一月1日 03:16 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/10 "2023-11-01T03:16:52Z")

</div>

> [@merefield](#):
>
> 我的插件很早就提供了这个功能

谢谢 @merefield Robert，是的，我看到了，感谢你在这方面所做的工作。但我希望 @sam（或有 Discourse 支持的人）正在开发一个 LLM 摘要功能，并与原生 Discourse 完全集成。显然，如果 Discourse 的商业计划客户只需要为他们自己的 OpenAI（或最终确定的任何提供商）密钥额外付费，那么从配置、高级兼容性和维护的角度来看，这将更加简单。一切顺利。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年十一月1日 03:29 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/11 "2023-11-01T03:29:51Z")

</div>

> [@mikessmt](#):
>
> 一个 LLM 摘要功能，可与原生 Discourse 完全集成

我无法代表 CDCK 发表评论，但这里的细微差别在于，我怀疑许多网站更希望这是可选的，因为有些网站对人工智能感到紧张（而另一些则希望完全拥抱它）。

因此，我怀疑这将仍然是一个可选的插件，并允许 CDCK 根据他们和客户的意愿定制产品。

然而，从工程师的角度来看，这几乎可以提供完全原生的体验，并且在功能上不会带来任何有意义的限制。

我无法谈论账单/openai 账户配置。

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年十一月1日 04:56 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/12 "2023-11-01T04:56:21Z")

</div>

嗨 Mike，我们最近推出了 ai bot，请看：

> **[Introducing AI Bot](https://blog.discourse.org/2023/10/introducing-ai-bot/)**
>
> Our AI Bot is a Discourse expert, ready to answer all your community and Discourse questions. Multiple people can simultaneously interact with the AI bot.

现在您的安装已可用，您可以为 anthropic 或 openai 插入凭据。

关于路线图，我们正在考虑下一步推出“embedding”，这将为您提供语义相关的主题。在此之后，我认为接下来的两个将是 ai helper 和 summary。

我无法给出这些功能将在 business plan 上推出的确切日期，但我们打算在未来几个月内推出它们。

Self hosters 和 enterprise 客户今天就可以访问它们。

* * *

Summarization（摘要）尤其有趣，我们正在购买几台 A100 服务器，并将在未来几周内投入使用。[Mistral](https://mistral.ai/) 的能力和速度令人惊讶，一旦我们部署了容量，我们甚至可能能够为 business plan 提供摘要，而无需自带密钥，但在此之前我们需要先探索性能特征，然后再做出任何承诺。

---

<div class="post-metadata">

**Author:** ![mikessmt](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mikessmt](https://meta.discourse.org/u/mikessmt)\
**Post date:** [2023年十一月22日 08:28 UTC](https://meta.discourse.org/t/summarising-topics-with-an-llm-gpt-bert/254951/13 "2023-11-22T08:28:17Z")

</div>

> [@sam](#):
>
> 摘要特别有趣，我们正在购买几台 A100 服务器，并将在几周内安装好。 [Mistral](https://mistral.ai/) 的能力和速度令人惊讶，一旦我们部署了容量，我们或许就能为不自带密钥的商业计划提供摘要，但在此之前我们需要先探索性能特点，然后再做出承诺。

谢谢你，Sam。我们对这个功能非常感兴趣，我猜其他托管客户也会感兴趣。祝一切顺利。
