赞
踩
本文用的LLM是openai的gpt系列。
刚开始学大模型,如果出现错误内容或着描述不恰当的部分,后续会修改。
Prompt是输入给AI模型的文本或语句,用来引导大模型(Large Language Model, LLM)生成相关的输出。好的prompt可以提高大模型输出的准确性和可靠性。一般而言,好的prompt的特点是:具体、丰富、少歧义。
这里使用代码的方式来使用大模型(具体的代码环境需自行配置),具体举例如下:
from openai import OpenAI from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) client=OpenAI() message=[ {"role":"system","content":"你是一个微信公众号文章的写手。"}, {"role":"user","content":"写一段话介绍大模型,字数要求200字以内。"}, ] response=client.chat.completions.create( model="gpt-4", messages=message, temperature=0.8) print(response.choices[0].message.content)
其输出为:
大模型,指的是通过大量数据训练得到的庞大的人工智能系统。这类模型因其庞大的参数数量和强大的数据处理能力而得名。它们能够处理复杂的任务,如自然语言理解、图像识别、语音处理等。大模型通过深度学习技术,学习数据中的模式和规律,从而实现对语言、图像等多种类型数据的理解和生成。这些模型的训练需要大量的计算资源和数据,因此常常由拥有强大计算能力的大型科技公司或研究机构开发。大模型的出现推动了人工智能技术的边界,使得机器能够在更多领域内执行复杂的任务,表现出接近甚至超越人类的能力。
从上文代码中可以看到client.chat.completions.create
中的message
参数主要用来接收prompt。关于message
的说明主要有以下几点:
message
是一个object
组成的数组。每个object都包含至少两个字段:role
和content
。message
支持的角色类型role
有:system
、user
、assistant
和tool
。role
为system
时,代表系统产生的消息或提示。此时还有一个可选参数name
。role
为user
时,代表用户发出的消息。role
为assistant
时,代表大模型返回的内容。role
为tool
时,用来保存tool_call
的返回结果。(后续博客会做详细介绍)举例如下:
message=[
{"role":"system","content":"你是一个微信公众号文章的写手。你叫小A"},
{"role":"user","content":"你是谁?"},
]
response=client.chat.completions.create(
model="gpt-3.5-turbo",
messages=message,
temperature=0.8)
print(response.choices[0].message.content)
其输出内容为:
嘿,我是小A,是这个微信公众号的写手。有什么可以帮你的吗?
如果运行命令print(response.choices[0].message)
,将会看到如下结果(GPT返回的信息中role
的值为assistant
):
ChatCompletionMessage(content=’ 嘿,我是小A,是这个微信公众号的写手。有什么可以帮你的吗?', role=‘assistant’, function_call=None, tool_calls=None)
下面使用一个简单的案例来介绍prompt的使用。具体要求使用大模型通过文章标题来筛选出为阅读或者书籍相关的文章(大模型适合完成文本入、文本出类的任务。)。完整代码如下:
from openai import OpenAI import json # 加载 .env 到环境变量 from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) client=OpenAI() def get_completion(messages,model='gpt-4'): response=client.chat.completions.create( model=model, messages=messages, temperature=0.8) return response.choices[0].message.content prompt=""" ##目标 你可以依据用户输入的文章标题,判断这篇文章是否跟阅读或者书籍相关。 ##用户输入 {input_article_title} ##输出 只输出“是”或“否”, ##示例 最适合今天读的灵性书籍: 是 肾脏很怕的 8 种食物,很多人每天都吃,还吃不少: 否 """ article_list=["用七本想象力爆棚的绘本,点燃那颗崭新的童心", '“书香盈怀 悦读致远” 2023年北京市诵读大赛燕山赛区活动通知', "哪本书让你流了最多的眼泪?(话费福利)", "今日宜自我分析", "文化和自然遗产日:考验你的时刻到啦!", "英文故事磨耳朵:When Sophie Gets Angry-Really,Really Angry...(附亲子共读获奖名单)", "今日宜消化情绪", "拜托了,夏天别和我提吃,除非……", "预约!预约!预约!", "今日宜大胆尝试", "预约!聆听恐龙故事,揭开恐龙足迹背后的远古谜团", "今日宜品读经典"] messages=[ {"role":"user", "content":prompt.format(input_article_title=str(article_list))}] result=get_completion(messages) print(result)
大模型输出结果为:
是
是
是
否
否
是
否
否
否
否
是
是
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。