吴恩达《ChatGPT Prompt Engineering for Developers》学习笔记

来自:口仆

进NLP群—>加入NLP交流群

本笔记是 deeplearning.ai 最近推出的短期课程《ChatGPT Prompt Engineering for Developers》的学习总结。

1 引言

总的来说,当前有两类大语言模型(LLM):「基础 LLM」「指令微调 LLM」

dac27bf8ef566debe2bde96e6c4f4361.png

基础 LLM 基于大量文本数据训练而成,核心思想为预测一句话的下一个单词(即词语接龙)。基于语料的限制,有时会返回不符合预期的结果(如上图所示)。

指令微调 LLM 基于人类设定的指令(格式化的输入与输出)对基础 LLM 进行微调训练,使其能够返回更加有用且无害的结果。当前还会使用 RLHF(基于人类反馈的强化学习)来进一步提升模型效果,此处不做展开。

本课程旨在介绍如何基于 ChatGPT 官方 API 编写 Prompt(即指令),来驱动模型更好地完成各种各样的任务。

2 指南

总的来说,Prompt 的编写有两大原则:

  • 原则一:编写明确而清晰的指令

  • 原则二:给模型足够的时间思考

下面将结合具体的代码来对这两条原则进行详细说明。在这之前,首先给出本课程中所使用的模型调用函数的代码(略去了从环境变量获取 key 的部分):

import openaiopenai.api_key = 'xxx'def get_completion(prompt, model="gpt-3.5-turbo"):messages = [{"role": "user", "content": prompt}]response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, # this is the degree of randomness of the model's output)return response.choices[0].message["content"]

2.1 编写明确而清晰的指令

对于这一原则,课程中给出了四条具体的策略来实践该原则:

「策略 1:使用分隔符,避免 Prompt 入侵」

我们可以通过分隔符来标识仅需要 ChatGPT 进行阅读的文本,防止其被解析为指令(即 Prompt 入侵)。常用的分隔符包括:三个引号、三个反引号、三个破折号等,ChatGPT 对于这些分隔符的区分并不是很敏感(例如在 Prompt 中说明使用反引号分隔,但实际用的是引号,并不会影响模型输出)。

eaae76279dfe2c984494ae18eed341a1.png

具体的代码示例如下(Prompt 不作翻译,可以自行替换为中文):

text = f"""
内容省略(可添加任意内容)
"""
prompt = f"""
Summarize the text delimited by triple backticks \
into a single sentence.
```{text}```
"""response = get_completion(prompt)
print(response)

「策略 2:要求模型提供结构化输出」

对于开发者来说,要求模型提供诸如 HTML 或 JSON 的格式化输出,有利于构建更加健壮的应用。具体的代码示例如下:

prompt = f"""
Generate a list of three made-up book titles along \
with their authors and genres. 
Provide them in JSON format with the following keys: 
book_id, title, author, genre.
"""response = get_completion(prompt)
print(response)

「策略 3:让模型进行条件判断」

对于较复杂的 Prompt,模型生成结果的时间可能会较长,同时可能浪费大量的 token。为了规避不必要的 API 调用消耗,我们可以在 Prompt 中包含一定的条件判断逻辑,来帮助模型在不满足条件时提前终止运算,直接返回结果。具体的代码示例如下:

text_1 = f"""
如何把大象放进冰箱?\
首先打开冰箱的门,\
然后把大象放进去,\
最后关上冰箱门。
"""
prompt = f"""
You will be provided with text delimited by triple quotes. 
If it contains a sequence of instructions, \
re-write those instructions in the following format:Step 1 - ...
Step 2 - …
…
Step N - …If the text does not contain a sequence of instructions, \
then simply write \"No steps provided.\"```{text_1}```
"""response = get_completion(prompt)
print("Completion for Text 1:")
print(response)

「策略 4:少量(Few-shot)训练提示」

有时候,对于某些任务,我们需要为模型提供少量完成该任务的成功示例,来帮助模型更好地理解并完成该任务。具体的代码示例如下:

prompt = f"""
Your task is to answer in a consistent style.<child>: Teach me about patience.<grandparent>: The river that carves the deepest \
valley flows from a modest spring; the \
grandest symphony originates from a single note; \
the most intricate tapestry begins with a solitary thread.<child>: Teach me about love.
"""response = get_completion(prompt)
print(response)

2.2 给模型足够的时间思考

这一原则的意义是:对于较为复杂的任务,如果不进行拆解,要求模型在短时间内通过少量词语进行回答,则可能导致结果的不准确。课程中给出了两条具体的策略来实践该原则:

「策略 1:指定完成任务所需的步骤」

该策略即通过 Prompt 拆解任务步骤降低复杂度,以帮助模型更好地完成任务。具体的代码示例如下(省略了 text 的内容,指定输出格式):

prompt = f"""
Your task is to perform the following actions: 
1 - Summarize the following text delimited by <> with 1 sentence.
2 - Translate the summary into Chinese.
3 - List each name in the Chinese summary.
4 - Output a json object that contains the following keys: chinese_summary, num_names.Use the following format:
Text: <text to summarize>
Summary: <summary>
Translation: <summary translation>
Names: <list of names in Chinese summary>
Output JSON: <json with summary and num_names>Text: <{text}>
"""response = get_completion(prompt)
print("\nCompletion for prompt 2:")
print(response)

「策略 2:提示模型在匆忙得出结论之前思考自己的解决方案」

通过提示模型在回答之前思考自己的解决方案,有时可以得到更好的结果。课程中给出了一个解数学题的案例,如果没有提示模型首先尝试解题,则模型会判断学生的解法是正确的,但是如果提示模型首先自己推导解题过程再进行判断,则其会得出学生的解法是错误的结论。具体的代码如下(比较长):

prompt = f"""
Your task is to determine if the student's solution \
is correct or not.
To solve the problem do the following:
- First, work out your own solution to the problem. 
- Then compare your solution to the student's solution \ 
and evaluate if the student's solution is correct or not. 
Don't decide if the student's solution is correct until 
you have done the problem yourself.Use the following format:
Question:
'''
question here
'''
Student's solution:
'''
student's solution here
'''
Actual solution:
'''
steps to work out the solution and your solution here
'''
Is the student's solution the same as actual solution \
just calculated:
'''
yes or no
'''
Student grade:
'''
correct or incorrect
'''Question:
'''
I'm building a solar power installation and I need help \
working out the financials. 
- Land costs $100 / square foot
- I can buy solar panels for $250 / square foot
- I negotiated a contract for maintenance that will cost \
me a flat $100k per year, and an additional $10 / square \
foot
What is the total cost for the first year of operations \
as a function of the number of square feet.
'''
Student's solution:
'''
Let x be the size of the installation in square feet.
Costs:
1. Land cost: 100x
2. Solar panel cost: 250x
3. Maintenance cost: 100,000 + 100x
Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000
'''
Actual solution:
"""response = get_completion(prompt)
print(response)

该代码的输出结果为:

Let x be the size of the installation in square feet.Costs:
1. Land cost: 100x
2. Solar panel cost: 250x
3. Maintenance cost: 100,000 + 10xTotal cost: 100x + 250x + 100,000 + 10x = 360x + 100,000Is the student's solution the same as actual solution just calculated:
NoStudent grade:
Incorrect

PS:课程中在多行文本中使用反斜杠来代替换行符,保证原始文本中没有换行,但是其在反斜杠添加了空格,会导致换行依旧存在,需要去除空格(实际对模型来说并没有影响,只是影响展示)

此外,本节还提到了模型的一种局限性:「幻觉」(Hallucination)。幻觉指 LLM 模型对于知识的边界性有时把握不足,可能会出现一本正经地胡说八道的情况。为了减少幻觉,我们可以提示模型首先收集相关信息,基于这些信息来回答问题。

3 迭代

编写 Prompt 是一个持续迭代的过程,通过对模型返回结果的分析,不断地修改 Prompt,我们可以最终得到较为满意的输出。同时,对 Prompt 的修改需要遵循上一章节提到的原则。

599392f562e688caa998b6684ca80083.png

4 摘要

我们可以使用 ChatGPT 来辅助生成对长文本的总结,以帮助我们在短时间内获取更多的信息。具体来说,通过模型执行摘要任务有以下两个注意点:

4.1 细化需求

通过 Prompt 来细化摘要的具体目的与关注点,可以获得更加精准的摘要。具体的代码示例如下:

prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site to give feedback to the \
Shipping deparmtment. Summarize the review below in Chinese, delimited by triple 
backticks, in at most 30 words, and focusing on any aspects \
that mention shipping and delivery of the product. Review: '''{prod_review}'''
"""response = get_completion(prompt)
print(response)

4.2 关键字差异

如果在 Prompt 中使用关键字「总结」(summarize),虽然模型会基于 Prompt 返回对应的总结,但其中通常会包含一些其他的信息;而如果使用关键字「提取」(extract),则模型会专注于提取在 prompt 中所提示的范围,返回更加精准的摘要。具体的代码示例如下:

prompt = f"""
Your task is to extract relevant information from \
a product review from an ecommerce site to give \
feedback to the Shipping department. The extracted result \
should be translated into Chinese.From the review below delimited by triple quotes \
extract the information relevant to shipping and \
delivery. Limit to 30 words. Review: '''{prod_review}'''
"""response = get_completion(prompt)
print(response)

5 推理

ChatGPT 非常适合用来对文本进行推理,对于传统 NLP 方法来说需要大量步骤(例如数据收集、打标签、训练、测试等)才能完成的任务,ChatGPT 可以通过 Prompt 轻松完成。本节将列举两种主要的推理任务:「情感分析」「信息提取」

5.1 情感分析

我们可以通过多种方式来指导 ChatGPT 分析一段文字中的情感,例如:

「识别积极/消极」

prompt = f"""
What is the sentiment of the following product review, 
which is delimited with triple backticks?Give your answer as a single word, either "positive" \
or "negative".Review text: '''{lamp_review}'''
"""response = get_completion(prompt)
print(response)

「识别多种情感」

prompt = f"""
Identify a list of emotions that the writer of the \
following review is expressing. Include no more than \
five items in the list. Format your answer as a list of \
lower-case words separated by commas.Review text: '''{lamp_review}'''
"""response = get_completion(prompt)
print(response)

「识别特定情感」

prompt = f"""
Is the writer of the following review expressing anger?\
The review is delimited with triple backticks. \
Give your answer as either yes or no.Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

5.2 信息提取

我们可以通过不同的 Prompt 指导 ChatGPT 提取不同维度的信息,例如:

「提取标签(实体)信息」

prompt = f"""
Identify the following items from the review text: 
- Item purchased by reviewer
- Company that made the itemThe review is delimited with triple backticks. \
Format your response as a JSON object with \
"Item" and "Brand" as the keys. 
If the information isn't present, use "unknown" \
as the value.
Make your response as short as possible.Review text: '''{lamp_review}'''
"""response = get_completion(prompt)
print(response)

「提取主题信息」

对于主题提取,ChatGPT 可以直接提取多个主题:

prompt = f"""
Determine five topics that are being discussed in the \
following text, which is delimited by triple backticks.Make each item one or two words long. Format your response as a list of items separated by commas.Text sample: '''{story}'''
"""response = get_completion(prompt)
print(response)

也可以给定主题列表,判断输入文本中包含了哪些特定主题(该方式也被称为 Zero Shot 训练):

topic_list = ["nasa", "local government", "engineering", "employee satisfaction", "federal government"
]prompt = f"""
Determine whether each item in the following list of \
topics is a topic in the text below, which
is delimited with triple backticks.Give your answer as list with 0 or 1 for each topic.\List of topics: {", ".join(topic_list)}Text sample: '''{story}'''
"""response = get_completion(prompt)
print(response)

6 转换

本节将介绍如何使用 ChatGPT 来进行文本转换任务,例如翻译、拼写与语法检查、语气调整、格式转换等,主要以代码示例为主。

6.1 翻译

ChatGPT 基于多种语言进行训练,具有较强的翻译能力,例如:

「翻译多种语言」

prompt = f"""
Translate the following  text to French and Spanish
and English pirate: \
'''I want to order a basketball'''
"""response = get_completion(prompt)
print(response)

「识别当前语言」

prompt = f"""
Tell me which language this is: 
'''Combien coûte le lampadaire?'''
"""response = get_completion(prompt)
print(response)

6.2 语气调整

基于不同的读者(观众),输出的文字可能有较大差异。ChatGPT 可以基于 Prompt 产生不同的语调,例如:

prompt = f"""
Translate the following from slang to a business letter: 
'Dude, This is Joe, check out this spec on this standing lamp.'
"""response = get_completion(prompt)
print(response)

6.3 格式转换

ChatGPT 支持多种格式的转换,Prompt 应该清楚地描述输入与输出格式,例如:

data_json = { "resturant employees" :[ {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},{"name":"Bob", "email":"bob32@gmail.com"},{"name":"Jai", "email":"jai87@gmail.com"}
]}prompt = f"""
Translate the following python dictionary from JSON to an HTML \
table with column headers and title: {data_json}
"""response = get_completion(prompt)
print(response)

6.4 文字检查

ChatGPT 还可以用来检查拼写和语法,帮助你改写文字(写文章必备),例如:

「普通校对与改写」

text = f"""
Got this for my daughter for her birthday cuz she keeps taking \
mine from my room.  Yes, adults also like pandas too.  She takes \
it everywhere with her, and it's super soft and cute.  One of the \
ears is a bit lower than the other, and I don't think that was \
designed to be asymmetrical. It's a bit small for what I paid for it \
though. I think there might be other options that are bigger for \
the same price.  It arrived a day earlier than expected, so I got \
to play with it myself before I gave it to my daughter.
"""prompt = f"proofread and correct this review: ```{text}```"
response = get_completion(prompt)
print(response)

课程中还使用了 redlines 包来查看改写前后的差异:

from redlines import Redlinesdiff = Redlines(text,response)
display(Markdown(diff.output_markdown))
7f47ed9cc4cdbb8f6b12eb1104a7e198.png

「基于特定风格的校对与改写」

prompt = f"""
proofread and correct this review. Make it more compelling. 
Ensure it follows APA style guide and targets an advanced reader. 
Output in markdown format.
Text: ```{text}```
"""response = get_completion(prompt)
display(Markdown(response))

7 扩展

ChatGPT 可以用来对文字进行扩展(将短文本变成长文本),本节将给出一个使用 ChatGPT 自动回复 email 的示例,并介绍对扩展来说很重要的一个 API 参数:「温度」(Temperature)

7.1 扩展示例

下面的例子给出了基于用户的评价生成自动回复 email 的 Prompt:

prompt = f"""
You are a customer service AI assistant.
Your task is to send an email reply in Chinese to a valued customer.
Given the customer email delimited by ```, \
Generate a reply to thank the customer for their review.
If the sentiment is positive or neutral, thank them for \
their review.
If the sentiment is negative, apologize and suggest that \
they can reach out to customer service. 
Make sure to use specific details from the review.
Write in a concise and professional tone.
Sign the email as `AI customer agent`.
Customer review: '''{review}'''
Review sentiment: {sentiment}
"""response = get_completion(prompt)
print(response)

实际上情感可以由 ChatGPT 自动提取,无需指定。此外,为了防止不好的用途,课程中建议明确表明上述内容是由 AI 生成的。

7.2 温度参数

温度参数可以用来控制模型输出的随机性,具体规则如下:

  • 温度越低,模型的输出越稳定(更保守)

  • 温度越高,模型的输出越随机(更具有创造力)

a801cbf99c197ce4a90fad2598c99aab.png

在不同的场景下,通过对温度参数的控制,可以得到更加合适的输出(温度参数通常设置在 0-2 之间)。

8 聊天机器人

本节将介绍如何使用 ChatGPT 构建一个聊天机器人,其关键在于如何为模型提供「上下文信息」。对模型来说,每一轮对话都是独立的,我们需要在接口中传入之前对话的历史信息。对于接口来说,总共存在三种角色,分别是:

  • System 角色:用于设定模型的身份,约束模型行为,放置于一轮对话的最开头

  • User 角色:当前对话的用户,提供输入信息

  • Assistant 角色:生成回复的模型

历史信息需要明确地表明每一条消息所对应的角色,如下图所示:

e50be731099fd6596e84b1dcaf14e155.png

为了实现历史信息的传入,需要修改之前的模型调用函数:

def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):response = openai.ChatCompletion.create(model=model,messages=messages,temperature=temperature, # this is the degree of randomness of the model's output)
#     print(str(response.choices[0].message))return response.choices[0].message["content"]

基于上述函数,可以手动实现历史消息的传入:

messages =  [  
{'role':'system', 'content':'You are friendly chatbot.'},
{'role':'user', 'content':'Hi, my name is Isa'},
{'role':'assistant', 'content': "Hi Isa! It's nice to meet you. \
Is there anything I can help you with today?"},
{'role':'user', 'content':'Yes, you can remind me, What is my name?'}  ]
response = get_completion_from_messages(messages, temperature=1)
print(response)

为了实现一个聊天机器人,我们需要支持对于对话历史消息的自动收集,课程中基于 panel 包实现了一个点菜机器人,通过精心设置的 System Prompt 实现了自动化点菜与价格计算,具体的代码此处不作展开。

这里给出一个更加通用的聊天机器人 demo,基于 Streamlit 实现,可以自由设置 System Prompt,同时对于对话历史消息进行了自动收集与上传:

import streamlit as st
import openaist.markdown('# ChatGPT demo')def init_session():if 'round' not in st.session_state:print("重置轮数")st.session_state['round'] = 1if 'question' not in st.session_state:print("重置问题记录")st.session_state['question'] = []if 'answer' not in st.session_state:print("重置回答记录")st.session_state['answer'] = []init_session()
code_input = st.text_input('请输入使用密钥')
system_input = st.text_input('请设定 ChatGPT 角色(用于生成符合角色的回答)', "你是一个有用的AI助手")
latest_input = st.text_area('请输入内容')openai.api_key = code_inputif st.button('发送'):st.session_state['question'].append(latest_input)message_list = []dic_q_item = {"role": "system", "content": system_input}message_list.append(dic_q_item)for n in range(st.session_state['round']):# 第 n 轮,有 n 个问题,n - 1 个答案待组装if n - 1 >= 0:dic_a_item = {"role": "assistant", "content": st.session_state['answer'][n - 1]}message_list.append(dic_a_item)dic_q_item = {"role": "user", "content": st.session_state['question'][n]}message_list.append(dic_q_item)completion = openai.ChatCompletion.create(model="gpt-3.5-turbo",max_tokens=1000,user="wzy",messages=message_list,temperature=0)answer = completion.choices[0].message['content']st.session_state['answer'].append(answer)col1, col2 = st.columns(2)for i in range(st.session_state['round']):with col1:st.text('User')st.write('  ' + st.session_state['question'][i])st.text(' ')st.write(' ')with col2:st.text(' ')st.write(' ')st.text('ChatGPT')st.write('  ' + st.session_state['answer'][i])st.session_state['round'] += 1if st.button('清空对话记录'):st.session_state.clear()

9 总结

以下为本课程核心知识点的思维导图总结:

4cc37e3434534ea287f62a100b52f21a.png

进NLP群—>加入NLP交流群

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习(20):nerf论文翻译与学习

目录 1 Introduction 2 Related Work 3 Neural Radiance Field Scene Representation 4 Volume Rendering with Radiance Fields 5 Optimizing a Neural Radiance Field 5.1 Positional encoding 5.2 Hierarchical volume sampling 5.3 Implementation details 6 Resu…

软件测试相关的一些笔记(七拼八凑笔记)

小插曲 IT行业职位简称 PD---product director&#xff08;产品总监/部门经理&#xff09;比项目经理级别高 PM---Project Management &#xff08;项目经理&#xff09; PL---Project Leader项目组长 PG---Prograer 程序员 SA---SystemAnalyst 系统分析师 QA--- QUALITY ASSU…

VALSE2023-内容总结(正在更新)

博文为精选内容&#xff0c;完整ppt请留言索取 一周内更新完毕&#xff0c;敬请期待 2023年度视觉与学习青年学者研讨会 (Vision And Learning SEminar, VALSE)于6月10日至12日在无锡太湖国际博览中心召开&#xff0c;由中国人工智能学会、中国图象图形学学会主办&#xff0c;…

特斯拉今天拉了,马斯克迟到半小时,一开口市值蒸发2048亿元

编辑部 发自 凹非寺量子位 | 公众号 QbitAI 啥也没有&#xff01; 17万新车、HW4.0、4D雷达……在大伙儿万众期待的特斯拉投资者日活动上&#xff0c;统统都没有&#xff01; 而且马斯克还迟到整整半小时&#xff0c;一张口股价就跌了1.43%&#xff0c;市值直接蒸发约2048亿元&…

【Shader Graph】SmoothStep节点详解及其应用

目录 一、SmoothStep函数 二、基础图像 情况一&#xff1a;t1 > t2 情况二&#xff1a;t1 < t2 三、两个SmoothStep函数相减的图像 1&#xff09;SmoothStep(t1&#xff0c;t2&#xff0c;x) - SmoothStep(t2&#xff0c;t3&#xff0c;x) 2&#xff09;SmoothS…

【Unity_Input System】Input System新输入系统(一)

目录 一、导入Input System包 二、使用方式1&#xff1a;直接从输入设备对应类中获取输入 三、使用方式2&#xff1a;用代码创建InputAction获取输入 四、使用方式3&#xff1a;用Player Input组件获取输入 五、使用方式4&#xff1a;用Input Action Asset生成C#代码获取输…

Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)

项目场景&#xff1a; 大屏项目显示云南省3D的地图&#xff0c;可拖拽缩放、地图打点、点击图标弹框等等功能 问题描述 多图层拖拽时会上下层会分离&#xff0c;延迟卡顿 原因分析&#xff1a; 1、拖拽时不同图层的中心坐标没有保持一致&#xff0c; 2、卡顿是数据更新动画时…

php编写年历流程图,使用PHP怎么编写一个万年历功能

使用PHP怎么编写一个万年历功能 发布时间&#xff1a;2020-12-25 14:27:13 来源&#xff1a;亿速云 阅读&#xff1a;94 作者&#xff1a;Leah 这篇文章将为大家详细讲解有关使用PHP怎么编写一个万年历功能&#xff0c;文章内容质量较高&#xff0c;因此小编分享给大家做个参考…

mysql审计audit插件_MySQL审计工具Audit插件使用

MySQL审计工具Audit插件使用一、介绍MySQL AUDIT MySQL AUDIT Plugin是一个 MySQL安全审计插件&#xff0c;由McAfee提供&#xff0c;设计强调安全性和审计能力。该插件可用作独立审计解决方案&#xff0c;或配置为数据传送给外部监测工具。支持版本为MySQL (5.1, 5.5, 5.6, 5.…

计算机小知识应用,电脑使用小知识

办公用品网平台正在火热招商中&#xff01;&#xff01;&#xff01; 1.在我们使用软件时&#xff0c;大部分软件(如word&#xff0c;excel&#xff0c;PPT&#xff0c;等)会使用CTRL键加s键进行快捷保存。比如说&#xff0c;我们在写word文档时&#xff0c;写完一段&#xff0…

linux tree工具使用,Dutree–Linux上磁盘使用情况分析的免费开源命令行工具

Dutree是一款免费的开源&#xff0c;快速的命令列工具&#xff0c;用于分析磁碟使用情况。Dutree是Durep和Tree的组合。Durep用图表创建磁盘使用情况报告&#xff0c;这使我们能够确定哪些目录使用了最多的空间。尽管durep可以产生类似于du的文本输出&#xff0c;但其真正的功能…

直播预告 | 虹科Vuzix AR眼镜赋能汽车业“智慧眼”

就在今天20:00-21:00&#xff01; 虹科行业AR解决方案直播课程《虹科AR汽车行业解决方案》&#xff0c;深刻透析汽车业诊断、维修、培训的“四大痛点”&#xff0c;介绍汽车行业AR创新解决方案、培训场景解决方案、数字化工作流解决方案、远程协助全场景解决方案&#xff01; …

2023,智能硬件的AIGC“又一春”

​ 文|智能相对论 作者|佘凯文 消费电子产品风光不再&#xff0c;特别是自去年以来&#xff0c;电子消费市场经历了一整年的寒潮袭击&#xff0c;智能手机等产品达到10年消费谷底&#xff0c;PC出货量整体下降16%&#xff0c;不仅如此&#xff0c;包括平板、可穿戴设备也一改…

ChatGPT 速通手册——开始提问

开始提问 当我们完成注册后&#xff0c;页面自动会跳转到ChatGPT的主页面&#xff0c;在这里我们就可以开始进行对话了。 我们在页面下方的输入框中填写问题&#xff0c;然后回车或者点击小飞机&#xff0c;我们的问题和ChatGPT的答案就会在页面上方以一问一答的格式展现出来…

小牛情报APP最强攻略

下面博主就为您写一波小牛情报最强攻略。 首先&#xff0c;我们来介绍一下小牛情报&#xff0c;是国内专业的独立第三方区块链数据服务平台&#xff0c;一直致力于数据的深耕与数据价值的挖掘&#xff0c;从数据的采集、处理到数据的分析&#xff0c;再到数据的应用于咨询。它…

北京市小牛电动车选购指南

由于北京市对可上牌照的电动自行车的配置有要求&#xff1a;速度不能超过25km/s&#xff0c;必须带有脚踏板。本文写于2019年11 月&#xff0c;当前&#xff0c;小牛在北京可选的车型也就只有如下几种&#xff1a;U/U1、US、UM、U了&#xff0c;它们在《北京市电动自行车产品目…

小牛性能服务器图片,【N1S参数篇】性能与体验并肩,N1S参数配置介绍

​智能化时代已经来临&#xff0c;智能产品对于我们来说都已经不再陌生&#xff0c;硬件配置似乎永远是智能产品中恒古不变的主题。 和科技沾边的东西&#xff0c;似乎很难添加什么感性的包装。虽然如今我们看到不少强调梦想与情怀的产品层出不穷&#xff0c;但归根结底&#x…

MAC下查看JDK1.8中文文档CHM教程

下载JDK文档资源&#xff0c;本文结尾会提供资源链接。下载打开Mac,下载可以识别CHM的软件如CHM Reader&#xff0c;ReadCHM。 注意&#xff1a;升级Mac系统到10.15后我自己电脑的CHM Reader已经不能使用&#xff0c;应该是不兼容。重新找了其他的软件替代即可比如&#xff1a;…

大牛生小牛的问题

问题&#xff1a; 一只刚出生的小牛&#xff0c;4年后生一只小牛&#xff0c;以后每年生一只。现有一只刚出生的小牛&#xff0c;问20年后共有牛多少只&#xff1f; 思路&#xff1a; 这种子生孙&#xff0c;孙生子&#xff0c;子子孙孙的问题&#xff0c;循环里面还有循环的嵌…

小牛N1S改装60A大单体宁德时代

N1s是19年底动力版&#xff0c;目前行驶12000公里没有任何故障&#xff0c;也没做任何改装&#xff01;由于电池26A续航55公里左右还是不能满足个人使用习惯&#xff0c;官方电池太贵&#xff0c;所以有了自己改装大单体的想法&#xff0c;目前采购电池等配件中&#xff0c;选择…