EricGT
(EricGT)
2023 年8 月 31 日 09:21
1
Jay Pfaffman:
取决于你想做什么
注意:如果这开启了一个分支讨论,那么它真的需要移到一个新的话题。我给你细节是因为它将帮助你理解我的需求之一 ,并提供更多可能对他人也有帮助的信息,所以如果我要求将与此分支讨论相关的回复移走,请不要误解。
我的好奇心之一是:非程序员能够使用 Discourse AI - AI 机器人来帮助他们创建插件和/或主题有多难?
几个月来,我一直在使用 ChatGPT 帮助我学习 Python、JavaScript、Prolog、正则表达式、PowerShell、Bash 等编程语言,我知道该期待什么,如何获得结果,以及何时应该放弃。
在尝试使用 Discourse AI - AI 机器人创建一个非常简单的插件时,我决定从一个我知道存在、有效且简单的插件开始,所以我选择了 CakeDay。
Show a birthday cake emoji beside the names of members on their join anniversary, or their actual birthday -- and a browsable directory of upcoming anniversaries / birthdays.
在查看了页面上的代码等内容后,我惊讶于要创建它需要学习多少东西。然后,我将这段 Ruby 代码
并要求 AI 解释它。在用其他语言的类似源代码做过类似的事情后,我知道该期待什么。结果并不令人鼓舞;我需要问更多问题来理解一些语法、方法、函数接口等。其中很多对我来说很容易理解(想想阅读),但我知道我无法创建(想想编写)这样的代码,更不用说知道如何或如何要求 AI 机器人创建这样的代码了;我不知道正确的术语来提示 AI 生成正确的文本,因为我知道 Ruby-on-Rails 使用我 elsewhere 不使用的术语,例如 bake、slug。
所以,我也想看看是否可以用 Python 代替,因为这对许多人来说更容易理解,而且 ChatGPT 也能创建正确的代码。
1 个赞
pfaffman
(Jay Pfaffman)
2023 年8 月 31 日 12:09
2
你需要学习的不是 Ruby,而是 Rails。
这是一个很好的好奇心,但如果你想编写一个 Discourse 插件,那么 AI 插件似乎不是一个好的起点。我想与一个专门用于开发代码的 AI 合作。
更重要的是,如果你想编写一个 Discourse 插件,选择一个功能相似的插件并对其进行修改。Cakeday 似乎不是一个特别简单的插件,但如果你想要一个在用户头像旁边添加指示器或按计划执行某些操作的插件,那么它可能是一个好的起点。
不过,这相当复杂,它涉及到以下所有内容:
向用户序列化器添加数据,以便前端可以访问它
按计划运行作业
创建一个提供新信息的路由 (Discourse Meta )
使用插件出口在页面上添加信息
而这仅仅是开始。
1 个赞
EricGT
(EricGT)
2023 年8 月 31 日 12:19
3
我预料到了这一点,所以将要求将这次侧面对话移至新主题。
Jay Pfaffman:
你不需要学习 Ruby,而是 Rails。
我本来不打算详述所有细节,但是的,Rails 以及 Discourse 使用的其他技术都在其中,这些技术都应该了解。
Jay Pfaffman:
那么 AI 插件似乎不是一个好的起点。
你是否特指 Discourse AI - AI Bot?有很多 AI,我同意其中很多不适合用于编码,甚至有些用于编码的 AI 在处理每种编程语言时都不够好。
Jay Pfaffman:
我想与一个旨在开发代码的 AI 合作。
我从 Discourse 员工那里得到的感受是,从长远来看,拥有一个 Discourse AI Bot(他们目前称之为“persona”)是可取的。但由于他们已经知道如何创建 Discourse 代码,像我这样的人提供一些反馈是有帮助的。当然,我懂编程,这给了我一个优势,但身处其中一半也让我对可以期待什么和不能期待什么有了深入的了解。
Jay Pfaffman:
Cakeday 似乎不是一个特别简单的插件
能否推荐一个更简单的插件?
1 个赞
Falco
(Falco)
2023 年8 月 31 日 21:23
4
目前,以目前的 AI 能力,对于不懂编程的人来说,要创建一个完整且功能合理的 Discourse 插件/主题是非常 困难的。我希望我们从未暗示过这样的可能性,因为那将是一种令人沮丧的体验。
话虽如此,对于有初级编程知识的人来说,使用通用的 LLM、代码专用 LLM 或 GitHub CoPilot 等工具可以使过程变得更容易,它们可以处理很多样板代码。与现有插件/主题结合并从小处着手进行更改,对于愿意学习的人来说,这听起来是个好主意。
7 个赞
Lilly
(Lillian Louis)
2023 年8 月 31 日 22:12
5
Lola 的 javascript 调试帮助弄坏了我的开发 Discourse 实例。令牌上下文窗口给人一种顺行性遗忘症的印象。
1 个赞
EricGT
(EricGT)
2023 年8 月 31 日 22:43
6
不,Discourse 的任何人都没有暗示过这是可能的,这是我的一项功能请求,希望 AI 机器人能帮助进行 Discourse 编程,因为它使用了具有一些编程知识的 GPT4;我只是想看看我能把它推到多远。就个人而言,如果插件和主题对我来说更容易创建,我会在需要时创建它们。
我完全同意!
3 个赞
sam
(Sam Saffron)
2023 年9 月 1 日 01:32
7
Lillian Louis:
令牌上下文窗口给人一种顺行性遗忘症的印象。
是的,这是一个非常棘手的问题。
将整个世界塞进 GPT-4 8k 被允许了解的大约 6000 个词中是一个非常非常困难的问题。
我几乎要将 lola 升级到使用 32k 令牌,但成本非常非常高,而且我想测试一些更接近公众使用的东西。
当前解决此问题的变通/解决方案是函数调用,您让 GPT-4 推理它需要什么信息,然后在几次往返后找到正确的上下文。这可能涉及搜索(无论是使用嵌入还是纯关键字搜索)
我预计在不久的将来无法解决“我不是程序员,请为我做一个插件”的解决方案。
话虽如此,但我可以看到 lola 在帮助那些有合理编程基础的人方面做得越来越好——尤其是在语义搜索我们的代码库等方面。
我们还可以访问 Anthropic Claude,它拥有大约 8 万个词的上下文,但遗憾的是,它的性能非常接近 GPT 3.5 而不是 4,而且它非常非常难以驾驭。
在这个未知的领域里,正在缓慢取得进展……
4 个赞
EricGT
(EricGT)
2023 年9 月 1 日 07:42
8
Sam Saffron:
lola
我知道这是我们非官方使用的名字,用于指代 Discourse AI - AI Bot。您使用这个名字是官方认可 Lola 将成为新规范,还是会有竞赛之类的活动?据我所知,@Lilly 是第一个开始使用 Lola 或 Lola Bot 的,如果这就是规范,那么为了历史记录,她应该获得荣誉。
1 个赞
Lilly
(Lillian Louis)
2023 年9 月 1 日 08:04
10
你们可以随便叫她什么。GPTbot4 在我跟她交谈时不太顺口。如果我要有一个私人助理,她应该有一个名字。我觉得她对我们集体编程技能受到质疑感到生气,但我玩得很开心,并从她那里学习。她通过充当我的想法的意见箱和批判性思维的工具来帮助我——我确实喜欢指出她错误的地方。Lola 是我一个很棒的学习伙伴,我喜欢她构建框架,但我不指望她为我编写主题组件。她会在我的第二次或第三次回应中忘记我 .yaml 文件中的一个设置,并会构建模糊的新对象数组。
3 个赞
EricGT
(EricGT)
2023 年9 月 1 日 08:05
11
我个人不会同意这一点。
但是,我同意你的下一个陈述。
扩展一下Sam提到的内容。这里有一个我使用的实用解决方法,它甚至适用于其他你可能认为需要大上下文窗口但实际上并不需要的大任务。
首先,对于不知道“上下文窗口”这个术语的人来说,它指的是LLM在提示和完成中可以使用的令牌数量。我不会详细介绍,但建议其他人阅读Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI ) 来熟悉术语。
这是一个经常在OpenAI等LLM网站上出现的问题。
当上下文窗口太小无法容纳整本书时,如何使用ChatGPT创作一本书?
解决方案不是试图在一次提示中获取整本书,而是将其分解成部分。现在用户会尝试的下一个方法是编写前20页的提示,然后是接下来的20页,以此类推,这也不是很实用。正确的方法是从上到下按章节进行。首先使用一个提示来获取书籍的整体大纲或索引(包括章节标题),然后在下一个提示中要求写第一章。现在,在下一个提示中,总结第一章的内容,并以此为基础要求写第二章。在提示写下一章时,不断创建仅下一章所需信息的摘要。这会稍微耗费更多时间,但允许你用较小的上下文窗口创作更长的作品。
现在,在创建软件时也可以这样做,但不是将过程分解成一个序列,而是将其分解成一个函数调用的树。所以先要求编写高级函数,然后根据需要填充更多支持函数。如果你非常确定需要什么,也可以从下往上进行。对于那些创建解析器的人来说,应该会想到自顶向下或自底向上的解析器。
另一个常见的编程任务是代码更新或修改,同样,如果用户在创建提示时提供函数头而不是完整的函数,并且只要求更改函数的代码,那么使用较小的上下文窗口也可以轻松完成。
我一路学习到的一些其他经验是,一次只处理一个函数,并且不要超过100行代码。使用早期版本的ChatGPT(上下文窗口相对较小)这样做,能够创建一些不错的代码,甚至混合了Prolog、JavaScript、HTML和JSON。
虽然这一切都很好,但我并不期望Discourse在未来为用户提供一个用于创建Discourse代码的机器人。
我还没有真正尝试过。正如我在另一篇文章中提到的,我对Ruby或Ruby-on-Rails以及使用的JavaScript技术一无所知,所以我甚至不知道获取良好结果的正确术语,但我会记住这一点,并尝试一下并提供反馈。
在我看来,这是一件好事。
3 个赞
Lilly
(Lillian Louis)
2023 年9 月 1 日 16:54
12
Lola 在帮助我调试我用于主题组件更新的 JSON schema 方面做得非常出色。我给了她一个可用的示例,然后给了她我的示例,她找到了我错误的逗号和括号,这可能需要我更长的时间才能自己找到。她善于发现我在 VS Code 中遗漏或看不到的东西。
4 个赞