面向开发者的 LLM 入门教程-笔记和代码

news2024/9/27 17:35:34

本文是 DLAI 课程 ChatGPT Prompt Engineering for Developers 的笔记。这门课面向入门 LLM 的开发者,深入浅出地介绍了如何构造 Prompt 并基于 OpenAI 提供的 API 实现包括总结、推断、转换等功能,是入门 LLM 开发的经典教程。

Prompt(提示),最初是 NLP 研究者为下游任务而设计的一种任务输入形式或模板,在 ChatGPT 的影响下,Prompt 成为与 LLM 交互输入的代称。一般我们把给大模型的输入称为 Prompt,将大模型返回的输出称为 Completion。一个合理的 Prompt 设计极大地决定了 LLM 能力的上限与下限。

Prompt Engineering,是针对特定任务构造能充分发挥大模型能力的 Prompt 的技巧

对于开发人员,LLM 更强大的功能是能通过 API 接口调用,从而快速构建软件应用程序。课程中有很多代码的实操,推荐大家使用 Google colab 来实现,免去本地环境的配置。代码运行的结果,可以查看 00 的 colab notebook,包括 Prompt 的运行结果:

图片

https://colab.research.google.com/drive/1m1QqQd2UUG_4VM4l1rEftKoWoCnxb7U0?usp=sharing

Lesson 1.提示词原则

提示词设计的两个关键原则:编写清晰、具体的指令,以及给模型充足思考时间。

原则一:编写清晰、具体的指令

Prompt 需要清晰明确地表达需求,提供充足上下文,使语言模型准确理解我们的意图,就像向一个外星人详细解释人类世界一样。过于简略的 Prompt 往往使模型难以把握所要完成的具体任务。

  1. 使用分隔符清晰地表示输入的不同部分

    可以选择用 ````,“”",< >, ,: 等做分隔符,只要能明确起到隔断作用即可。

在这里插入图片描述

  1. 结构化输出

    按照某种格式组织的内容,例如JSON、HTML等。这种输出非常适合在代码中进一步解析和处理。
    在这里插入图片描述

  2. 要求模型检查是否满足条件

    如果任务包含不一定能满足的条件,可以告诉模型先检查这些条件,如果不满足,就指出并停止执行后续的完整流程。
    在这里插入图片描述

  3. 提供少量示例

    在要求模型执行实际任务之前,给出一两个已完成的样例,让模型了解期望的输出样式。

原则二:给模型充足思考时间

语言模型与人类一样,需要时间来思考并解决复杂问题。如果匆忙给出结论,结果很可能不准确。因此 Prompt 应加入逐步推理的要求,给模型留出充分思考时间,可以要求其先列出对问题的各种看法,说明推理依据,然后再得出最终结论。

  1. 指定完成任务所需的步骤

    text = f"""
    李琪,爱荷华州立大学计算机科学系助理教授,她于2017年取得纽约州立大学布法罗分校计算机科学与工程系博士学位;于2012年取得伊利诺伊大学香槟分校统计学硕士学位;于2010年取得西安电子科技大学信息与计算科学学士学位。她的研究兴趣为数据管理、数据挖掘和机器学习。
    彭楠赟,现任加州大学洛杉矶分校计算机科学系助理教授。她于2012年在北京大学获得学士和硕士学位,于2017年获约翰·霍普金斯大学计算机科学博士学位。她的研究方向为低资源信息提取、语言生成和跨语言迁移。
    Qianqian Wang,康纳尔大学计算机科学专业博士四年级,此前在浙江大学获得学士学位,研究方向是3D 计算机视觉、计算机图形学和机器学习的交叉领域。
    陈师哲, INRIA Paris 的一名博士后研究员。她分别于2020年和2015年在中国人民大学获得博士和学士学位,2018年访问了卡内基梅隆大学,2019 年访问了阿德莱德大学,2019年在 MSRA 工作。她在2017年获得百度奖学金,2020年获得北京市优秀毕业生奖。她的研究兴趣是具身智能、视觉与语言、多模态深度学习。
    李爽,目前是麻省理工学院电气工程与计算机科学专业的一名五年级博士生,她的研究兴趣是人工智能,包括计算机视觉、自然语言处理、决策和机器学习。
    Xin Lu,现任Adobe 的高级工程经理,于2015年获得美国宾夕法尼亚州立大学的博士学位。她的研究涵盖从端到端 AI/ML 研发到软件开发、分析、开发运营、新计划和现有业务线的产品开发和管理。 此外,她还在顶级的计算机视觉和机器学习领域发表了 30 多篇论文,并拥有超过 35 项美国专利。
    刘伊凡,现任苏黎世联邦理工大学讲师,阿德莱德大学客座助理教授。于2018年获得北航自动化学院硕士学位,2021年获得阿德莱德大学计算机科学学院博士学位。研究领域主要包含深度学习、开放世界感知。
    """
    
    prompt_2 = f"""
    1-用一句话概括下面用<>括起来的文本。2-将摘要翻译成英语。3-在英语摘要中列出每个名称。4-输出一个 JSON 对象,其中包含以下键:English_summary,num_names。请使用以下格式:文本:<要总结的文本>摘要:<摘要>翻译:<摘要的翻译>名称:<英语摘要中的名称列表>输出 JSON:<带有 English_summary 和 num_names 的 JSON>Text: <{text}>
    """
    response = get_completion(prompt_2)
    print("\nprompt 2:")
    print(response)
    
  2. 让模型在下结论之前给出自己的解法

Lesson 2. 迭代优化

在开发大语言模型应用时,很难通过第一次尝试就得到完美适用的 Prompt。关键是要有一个良好的迭代优化过程,不断改进 Prompt。

图片
在这里插入图片描述
在这里插入图片描述

轮次Prompt目的
初始您的任务是帮助营销团队基于技术说明书创建一个产品的营销描述。根据标记的技术说明书中提供的信息,编写一个产品描述。技术规格: {fact_sheet_chair}
迭代 1您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据标记的技术说明书中提供的信息,编写一个产品描述。使用最多50个词。技术规格: {fact_sheet_chair}添加长度限制,生成更简洁的文案
迭代 2您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。使用最多50个单词。技术规格: {fact_sheet_chair}说明受众,应具有什么性质以及侧重点
迭代 3您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据```标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。在描述末尾,包括技术规格中每个7个字符的产品ID。使用最多50个单词。技术规格: {fact_sheet_chair}要求在描述的结尾,给出产品 ID
迭代 4您的任务是帮助营销团队基于技术说明书创建一个产品的零售网站描述。根据```标记的技术说明书中提供的信息,编写一个产品描述。该描述面向家具零售商,因此应具有技术性质,并侧重于产品的材料构造。在描述末尾,包括技术规格中每个7个字符的产品ID。在描述之后,包括一个表格,提供产品的尺寸。表格应该有两列。第一列包括尺寸的名称。第二列只包括英寸的测量值。给表格命名为“产品尺寸”。将所有内容格式化为可用于网站的HTML格式。将描述放在元素中。技术规格: {fact_sheet_chair}提取产品尺寸信息并组织成表格

在这里插入图片描述

Lesson 3. 文本概括

LLM 文本摘要功能的优势可以为你节省时间、提高效率,以及精准获取信息。

单一文本概括

任务:商品评论总结
在这里插入图片描述

限制输出文本长度
在这里插入图片描述

注:模型在计算和判断文本长度时依赖于分词器,统计字符时并不精确。

设置侧重点
在这里插入图片描述

关键信息提取
在这里插入图片描述

多条文本概括

将多条用户评价集合在一个列表中,并利用 for 循环和文本概括提示词,将评价概括至小于 20 个词以下,并按顺序打印。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Lesson 4.推断

一、情感推断

商品评论

lamp_review = """
我需要一盏漂亮的卧室灯,这款灯具有额外的储物功能,价格也不算太高。\
我很快就收到了它。在运输过程中,我们的灯绳断了,但是公司很乐意寄送了一个新的。\
几天后就收到了。这款灯很容易组装。我发现少了一个零件,于是联系了他们的客服,他们很快就给我寄来了缺失的零件!\
在我看来,Lumina 是一家非常关心顾客和产品的优秀公司!
"""

判断商品评论的情感 prompt
在这里插入图片描述

识别情感类型 prompt
在这里插入图片描述

识别愤怒 prompt
在这里插入图片描述

二、信息提取

商品信息提取
在这里插入图片描述

综合情感推断和信息提取

prompt = f"""
从评论中识别以下内容:
- 情绪(正面/负面)
- 评论者是否感到生气?(是/否)
- 评论者购买的物品
- 制造该物品的公司

评论用三个反引号分隔。将回答转换为 JSON 对象,以 “情感倾向”、“是否生气”、“物品类型” 和 “品牌” 作为key。
如果信息不存在,请使用 “未知” 作为值。
回答应尽可能简短。
将 “是否生气” 值转换为布尔值。

评论文本: ```{lamp_review}```
"""
response = get_completion(prompt)
print(response)

三、主题推断

判断一段文本的主旨,它涉及了哪些主题。

story = """
在政府最近进行的一项调查中,要求公共部门的员工对他们所在部门的满意度进行评分。
调查结果显示,NASA 是最受欢迎的部门,满意度为 95%。

一位 NASA 员工 John Smith 对这一发现发表了评论,他表示:
“我对 NASA 排名第一并不感到惊讶。这是一个与了不起的人们和令人难以置信的机会共事的好地方。我为成为这样一个创新组织的一员感到自豪。”

NASA 的管理团队也对这一结果表示欢迎,主管 Tom Johnson 表示:
“我们很高兴听到我们的员工对 NASA 的工作感到满意。
我们拥有一支才华横溢、忠诚敬业的团队,他们为实现我们的目标不懈努力,看到他们的辛勤工作得到回报是太棒了。”

调查还显示,社会保障管理局的满意度最低,只有 45%的员工表示他们对工作满意。
政府承诺解决调查中员工提出的问题,并努力提高所有部门的工作满意度。
"""


推断讨论主题 prompt
在这里插入图片描述

为特定主题制作新闻提醒

假设有一个新闻网站,我们感兴趣的主题:美国航空航天局、当地政府、工程、员工满意度、联邦政府等。判断一篇文章,是否包含这些主题。
在这里插入图片描述

可以在此基础上制定新闻提醒:
在这里插入图片描述

Lesson 5.文本转换

一、文本翻译

相比于传统统计机器翻译系统,大语言模型翻译更加流畅自然,还原度更高。通过在大规模高质量平行语料上进行 Fine-Tune,大语言模型可以深入学习不同语言间的词汇、语法、语义等层面的对应关系,模拟双语者的转换思维,进行意义传递的精准转换,而非简单的逐词替换。
在这里插入图片描述

二、语气与写作风格调整

在这里插入图片描述

三、文件格式转换

大模型可以轻松实现 JSON 到 HTML、XML、Markdown 等格式的相互转化,掌握这一转换技巧可更高效地处理结构化数据。

# 假设有一个 JSON 数据,包含餐厅员工的姓名和邮箱。现在将这个 JSON 转换为 HTML 表格格式,以便在网页中展示
data_json = { "resturant employees" :[
    {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},    
    {"name":"Bob", "email":"bob32@gmail.com"},    
    {"name":"Jai", "email":"jai87@gmail.com"}
]}
prompt = f"""
将以下Python字典从JSON转换为HTML表格,保留表格标题和列名:{data_json}
"""
response = get_completion(prompt)
print(response)

四、拼写及语法纠正

假设一篇文章的部分句子存在错误。可以遍历每个句子,要求模型进行检查,如果句子正确就输出“未发现错误”,如果有错误就输出修改后的正确版本。

text = [
   "The girl with the black and white puppies have a ball.",  # The girl has a ball.  
   "Yolanda has her notebook.", # ok  
   "Its going to be a long day. Does the car need it’s oil changed?",  # Homonyms  
   "Their goes my freedom. There going to bring they’re suitcases.",  # Homonyms  "Your going to need you’re notebook.",  # Homonyms  
   "That medicine effects my ability to sleep. Have you heard of the butterfly affect?", # Homonyms  
   "This phrase is to cherck chatGPT for spelling abilitty"  # spelling
]
for i in range(len(text)):
    time.sleep(20)    
    prompt = f"""请校对并更正以下文本,注意纠正文本保持原始语种,无需输出原始文本。    
    如果您没有发现任何错误,请说“未发现错误”。    
        
    例如:    
    输入:I are happy.    
    输出:I am happy.    
    ```{text[i]}```"""    
    response = get_completion(prompt)    
    print(i, response)

五、综合样例

同时对一段文本进行翻译、拼写纠正、语气调整和格式转换等操作。
在这里插入图片描述

Lesson 6.文本扩展

文本扩展可以输入简短文本,生成更加丰富的长文。

一、定制客户邮件

将根据客户评价和情感倾向生成回复邮件。
在这里插入图片描述
在这里插入图片描述

二、温度系数

大语言模型中的 “温度”(temperature) 参数可以控制生成文本的随机性和多样性。temperature 的值越大,语言模型输出的多样性越大;temperature 的值越小,输出越倾向高概率的文本。

举个例子,在某一上下文中,语言模型可能认为“比萨”是接下来最可能的词,其次是“寿司”和“塔可”。若 temperature 为0,则每次都会生成“比萨”;而当 temperature 越接近 1 时,生成结果是“寿司”或“塔可”的可能性越大,使文本更加多样。

图片

如果需要可预测、可靠的输出,则将 temperature 设置为0;如果需要更具创意的文本,可适当提高 temperature。
在这里插入图片描述

Lesson 7.聊天机器人

一、给定身份

在 ChatGPT 网页界面中,消息分为用户消息和助手消息。但在构建聊天机器人时,在发送了系统消息之后,您的角色可以仅作为用户 (user) ;也可以在用户和助手 (assistant) 之间交替来提供对话上下文。
在这里插入图片描述
在这里插入图片描述

二、构建上下文

每次与语言模型的交互都互相独立,这意味着要提供所有相关的消息,以便模型在当前对话中进行引用。如果想让模型引用或 “记住” 对话的早期部分,则必须在输入中提供对话历史,也就是上下文 (context) 。
在这里插入图片描述

三、订餐机器人

机器人会自动收集用户信息,并接收来自比萨饼店的订单。

collect_messages() 函数收集用户消息,从用户界面中收集 Prompt ,然后将其附加到一个名为上下文( context )的列表中,并在每次调用模型时使用该上下文。模型的回答也会添加到上下文中,上下文逐渐变长。这样模型就知道下一步要做什么。

def collect_messages(_):
    prompt = inp.value_input    
    inp.value = ''    
    context.append({'role':'user', 'content':f"{prompt}"})    
    response = get_completion_from_messages(context)    
    context.append({'role':'assistant', 'content':f"{response}"})    
    panels.append(     
        pn.Row('User:', pn.pane.Markdown(prompt, width=600)))    
    panels.append(    
        pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={'background-color': '#F6F6F6'})))    
    return pn.Column(*panels)


现在,我们将设置并运行这个 UI 来显示订单机器人。初始的上下文包含了包含菜单的系统消息,在每次调用时都会使用。此后随着对话进行,上下文也会不断增长。需要用 pip 安装 panelCopy 库(用于可视化界面)。
在这里插入图片描述
在这里插入图片描述

运行如上代码可以得到一个点餐机器人,下图展示了一个点餐的完整流程:

图片

创建JSON摘要

接下来要求模型创建一个 JSON 摘要,发送给订单系统。(此处也可以定义为用户消息,不一定是系统消息)

请注意,这里使用了一个较低的温度,因为对于这些类型的任务,我们希望输出相对可预测。

messages =  context.copy()
messages.append(
{'role':'system', 'content':
'''创建上一个食品订单的 json 摘要。\
逐项列出每件商品的价格,字段应该是 1) 披萨,包括大小 2) 配料列表 3) 饮料列表,包括大小 4) 配菜列表包括大小 5) 总价
你应该给我返回一个可解析的Json对象,包括上述字段'''},
)

response = get_completion_from_messages(messages, temperature=0)
print(response)

在这里插入图片描述
在这里插入图片描述

总结

Prompt 的两个核心原则:

  • 编写清晰具体的指令;
  • 给模型一些思考时间。

我们还学习了迭代式 Prompt 开发的方法,逐步找到适合的 Prompt;另外,课程还讨论了大型语言模型的许多功能,包括摘要、推断、转换和扩展。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1981038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【BES2500x系列 -- RTX5操作系统】系统执行流程 -- 系统初始化 -- main函数 --(十一)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

OJ-0805

题目 参考 import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int L1 scanner.nextInt();int L2 scanner.nextInt();int[] A new int[L1];int[] B new int[L2];fo…

算法回忆录(1)

1.编程求1*2*3*4*……*n的末尾有多少个0。 #include <stdio.h>// 计算 n! 中末尾的0的个数 int count_zeros_in_factorial(int n) {int count 0;for (int i 5; n / i > 1; i * 5) {count n / i;}return count; }int main() {int n;printf("请输入一个整数 n&…

代码随想录day34 || 62不同路径 63不同路径2 343整数拆分

动归5步法 1&#xff0c;确定dp数组&#xff08;dp table&#xff09;以及下标的含义 2&#xff0c;确定递推公式 3&#xff0c;dp数组如何初始化 4&#xff0c;确定遍历顺序 5&#xff0c;举例推导dp数组 62不同路径 力扣题目链接 题目描述&#xff1a; 一个机器人…

免费分享一套SpringBoot+Vue图书(图书借阅)管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue图书(图书借阅)管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue图书(图书借阅)管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 本论文阐述了一套先进的图书管理系…

分享一个基于Node.js和Vue的游戏点单陪玩系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

MQ面试篇

目录 传送门前言一、MQ优缺点二、MQ消息重复问题处理&#xff08;精品&#xff09;三、保证MQ消息不丢失四 、MQ百万消息持续积压问题五、如果保证MQ的高可用 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringB…

山东青岛高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

青岛高校大学智能制造实验室作为高校科研和人才培养的重要基地&#xff0c;一直致力于推动智能制造技术的研发和应用。为了提升实验室在智能制造领域的教学、科研和产业合作能力&#xff0c;实验室决定建设数字孪生可视化系统平台。 智能制造数字孪生项目旨在通过搭建一个全面…

C语言实现希尔排序和堆排序

目录 1.希尔排序 1.1基本思想 1.2希尔排序的特性总结 1.3希尔排序算法的实现 2.堆排序 2.1基本思想 2.2堆排序的特性总结 2.3堆排序算法的实现 1.希尔排序 1.1基本思想 希尔排序法的基本思想是&#xff1a;先选定一个整数(gap)&#xff0c;把待排序文件中所有记录分成…

自定义微信小程序源码系统 带网站的源代码包以及搭建部署教程

系统概述 自定义微信小程序源码系统是一套完整的解决方案&#xff0c;包含了微信小程序的源代码以及配套的网站源代码包。它为开发者提供了一个可定制、可扩展的开发平台&#xff0c;让开发者能够根据自己的需求和创意&#xff0c;快速构建出具有独特风格和功能的微信小程序。…

微力同步如何安装使用并使用内网穿透配置公网地址远程访问

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 内网穿透工具安装 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸&#xff0c;虽然谈不上多么新颖&#xff0c;但是其广…

CodeWave简介

CodeWave是网易自主研发的领先低代码平台&#xff0c;可快速搭建公司官网、项目管理、OA等各种企业信息化系统&#xff0c;助力企业数字化提质增效。产品特点&#xff1a;低门槛&#xff08;降低软件开发门槛&#xff0c;赋能非专业技术人员专职从事软件开发工作&#xff09;、…

要想赚钱,AI模型该大该小?贾扬清:论AI模型经济学的技巧

卖模型就像感恩节卖火鸡&#xff0c;快才能赚钱。 最近的AI社区&#xff0c;关于模型规模的讨论有些活跃。 一方面&#xff0c;此前在大模型开发奉为“圣经”的Scaling Law&#xff0c;似乎正在褪去光环。去年大家还在猜测GPT-5的规模“可能会大到想不到”&#xff0c;现在这…

2024华数杯C题解题思路及详细建模步骤分享+双语言代码

2024“华数杯”数模竞赛已经开赛啦&#xff0c;这次给大家带来的是今年华数杯C题解题思路&#xff0c;内容由我们团队的众多国奖学长学姐给大家出具高质量的解题思路&#xff0c;参考代码等&#xff0c;希望能助大家一臂之力。 问题1: 请问352 个城市中所有35200 个景点评分的最…

【Nuxt】约定式路由和 NuxtLink

约定式路由 手动创建&#xff1a; 或者还可以使用终端创建页面&#xff1a;nuxi-add-page npx nuxi add page about — about.vue npx nuxi add page about/index — about/index.vue <NuxtLink to"/"><button>Home</button></NuxtLink><…

25集 ESP32 C3 AI chat聊天工程代码流程-《MCU嵌入式AI开发笔记》

25集 ESP32 C3 AI chat聊天工程代码流程-《MCU嵌入式AI开发笔记》 我们打开Ai chat工程&#xff0c;用vscode。 main.c里面&#xff0c;重点看一下app_main函数。 Created with Raphal 2.3.0 开始 nvs_flash_init audio_hal_ctrl_codec audio init display init &#xff08…

AUTOSAR之AUTOSAR OS(下)

前言&#xff1a;在上篇中&#xff0c;我们主要描述了OSEK OS的相关内容以及AUTOSAR OS的OS Application对象的一些内容&#xff0c;包括Counter&#xff0c;Alarm&#xff0c;Enent&#xff0c;ISR&#xff0c;Task&#xff0c;Schudule Table等&#xff0c;本篇文章中&#x…

element-plus 菜单组件 index属性如何正确赋值?

element-plus 菜单组件 index属性如果直接填写字符串&#xff0c;就会报如下的错误 正确写法与错误写法 报错解释&#xff1a;Error parsing JavaScript expression: Unterminated regular expression. (1:2) 这个错误表明你在解析一个JavaScript表达式时遇到了一个未正确结束…

【人工智能专栏】 PCA Decomposition

PCA Decomposition 算法 去除平均值 。计算协方差矩阵 。计算协方差矩阵的特征值和特征向量 。将特征值排序 保留前N个最大的特征值对应的特征向量 。将原始特征转换到上面得到的N个特征向量构建的新空间中(最后两步,实现了特征压缩)。解释 为什么样本在“协方差矩阵C的最大…

元太电磁膜SUDE-10S19MI-01X驱动适配

屏规格书&#xff1a; dts配置&#xff1a; 首先要确保CONFIG_I2C_HID宏打开&#xff0c;i2c-hid-core.c 文件才能编译进去代码。规格书vendor product 分别为0x2d1f 和0x0165 来区别&#xff0c;不至于影响到整体的hid其他设备。 i2c-hid-dev10 { compatible "hid-…