一个持续学习的LLM方法(第2部分)

捕捉参加的会议和网络研讨会

在本系列的第一部分中,我概述了我想要完成这个据称有用但过度设计的项目的工作。回顾一下,作为持续教育的证明,我想要:

  1. (在第一部分完成) 使用具有视觉功能的LLMs(GPT 40-mini)记录已阅读的书籍,提取书名、作者,并根据预定义的标签(例如,能力训练、商业敏锐度、工作方式)对书籍进行推理和分类。
  2. (第2部分的重点)通过将参加的会议和网络研讨会记录在Airtable中,通过在日历中记录这些活动。同样,我们将利用LLM将会议/网络研讨会分类为相同的预定义标签。
  3. 第三部分的重点是与已阅读的文章进行“聊天”。仍在思考中。但理想情况下,我希望要么尝试使用谷歌的NotebookLM,要么使用除RAG之外的技术,如微调。

进行一个小迂回 - 重新评估使用Llama 3.2记录阅读书籍的视角

从上一篇帖子到现在,发生了Llama 3.2。这很有趣,因为它是开源的,具有多模式功能,并且应该和领先的(且价格实惠)模型如GPT 40-mini 和 Claude 3-Haiku 一样强大。

重新使用相同的4本书封面,我尝试使用Llama 3.2 11B和90B模型提取书名和作者。除了为一些书籍分配不同的类别标签之外,这两个模型都能很好地捕捉到书名(包括副标题)和作者。

记录参加的会议和网络研讨会

大多数(如果不是全部)我的会议/网络研讨会活动都记录在我的日历中。因此,将日历中插入的相关日历条目的检索自动化,通过REST API发送它们进行处理,然后将记录插入到我选择的数据库Airtable中是有意义的。在这篇文章中,我将描述Office 365的流程,但是该架构应该适用于大多数流行的电子邮件/日历平台,如以下所示:

为了从Office 365检索日历条目,微软的Power Automate实际上是一个非常自然和简单的流程自动化平台。我可以很快地创建工作流程,检索相关的日历条目(标有学习标签),并将元数据(如主题、内容、开始和结束日期时间)发送到我定制的REST API。

Workflow in Microsoft’s Power Automate {Desmond Loh}

对于我的自定义API,我创建了以下Pydantic模型来记录我的会议/网络研讨会。除了建议活动类别外,我接受了来自我上一篇帖子的反馈(感谢Ong Ting Wei),让GPT 40-mini根据它在活动网站上找到的材料生成一个简短的摘要,这些材料是从日历条目的正文中提取的。

# Create a Pydantic model for the LLM to capture the webinar in a structured format
class Webinar(BaseModel):
Title: str
Description: str
Category: str
StartDate: str
EndDate: str
Summary: str

# Get the AI to generate the summary
completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": "Based on the title of the webinar or conference attended,
search the URLs provided as part of the context to gather
information and summarise a synopsis for the event in
300 words or less. If you are unable to find relevant
resources, do not guess and just return a response of NIL only."
},
]
},
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Title: {subject} and Context: {body}"
}
]
},
],
temperature=0.1,
max_tokens=2048,
response_format={
"type": "text"
}
)
summary = completion.choices[0].message.content

# Create the conference/webinar record in Airtable with the
# AI generated summary & category
webinar = Webinar(Title=f"{subject}",
Description=f"{body}",
Category=category,
StartDate=f"{startdate}",
EndDate=f"{enddate}",
Summary=summary)
record = webinar_table.create(webinar.model_dump())

有了这些,我有一个相当不错的会议/网络研讨会记录,里面有一个非常棒的摘要,需要时可以回头查看。其中一些学习活动是与专家进行的电话会议,因此不会有可以从任何网站中提炼出的摘要。

Final Outcome (with some hidden columns) in Airtable {Desmond Loh}

反省运动

总的来说,结果非常好。解决方案几乎是免费的(微不足道的费用来自OpenAI,而AWS是免费的,因为我的无服务器API在免费的配额内运行),并且很容易维护。

虽然GenAI是当今风靡的技术,但可能是一个复杂的方法来使用它来检索日历条目。在这种情况下,使用像Power Automate(或IFTTT、Make、Zapier)这样的自动化工具是一个更加优雅和确定性的解决方案。最重要的是:我们有一套工具箱,不是所有事情都需要用锤子敲打😝。

作为最后的评论,我曾试用过其他云服务提供商,但最终我又转向了亚马逊网络服务(AWS)。AWS感觉更直观,我在上面效率更高。至于Power Automate,虽然它可以正常工作,但我认为它需要更多的提炼和减少软件中一些怪癖。

很高兴听到您的评论和建议。期待下一篇文章!

2024-10-07 04:15:00 AI中文站翻译自原文