HYLOVEYOURSELF

小洋宝的进步史

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Datawhale 组队学习😁wow-agent😍task01 openai库搭建Al Agent

Datawhale 组队学习 wow-agent

Datawhale项目链接:https://www.datawhale.cn/learn/summary/86

笔记作者:博客园-岁月月宝贝💫

微信名:有你在就不需要🔮给的勇气

项目总目标:用openai库、llama-index、zigent、metagpt搭建可嵌入到一般生产环境中的AI Agent。

意义:实现了代码行数和依赖库数量之间的均衡最小值,最简易的方式在本地搭建AI Agent。

🐍项目源起:

wow-agent是自塾(zishu.co)出品的第三个开源项目。自塾在2024年出品了三个开源项目,分别是:

https://github.com/datawhalechina/wow-fullstack
https://github.com/datawhalechina/wow-rag
https://github.com/datawhalechina/wow-agent

1.Agent基础入门

什么是Agent(LLM总结自《New whitepaper Agents》):

Agent为何诞生?——LLMs有强大的语言理解和生成能力,却又存在局限性,它们无法与外界互动(所以也无法执行实际操作),知识局限于训练数据(无法获取实时信息和外部知识库),限制了其应用范围。所以我们为什么不将LLMs与工具和编排层相结合(+允许其利用工具与外界交互),构建一个根据目标进行自主决策和行动的智能体?

Agents的核心组件

解释\组件 模型 工具 编排层
角色 Agent的“大脑”,负责理解用户输入,进行推理和规划,并选择合适的工具进行执行 Agent与外界交互的“桥梁”,允许Agent访问外部数据和服务,执行各种任务。 负责管理Agent的内部状态,协调模型和工具的使用,并根据目标指导Agent的行动
类型 常用的模型包括ReAct、Chain-of-Thought、Tree-of-Thought等,它们提供不同的推理框架,帮助Agent进行多轮交互和决策 工具可以是各种API,例如数据库查询、搜索引擎、代码执行器、邮件发送器等。 可以使用各种推理框架,例如ReAct、Chain-of-Thought等,帮助Agent进行规划u和决策
重要性 模型是Agent的核心,其推理能力决定了Agent的行动效率和准确性 工具扩展了Agent的能力,使其能够执行更复杂的任务 编排层是Agent的“指挥中心”,负责协调各个组件,确保Agent的行动符合目标。
Agent的运作过程:
Agent接收用户输入➡模型理解用户的意图➡模型推理规划(根据用户输入和当前状态)➡模型选择工具➡Agent使用工具执行行动➡Agent获取工具执行结果➡Agent将结果输出给用户(或进行下一步行动)

Agents的应用

未命名-Agents应用范围

Agents的开发工具

未命名-Agents2

Agents的未来

3-Agents应用范围

😊Agents是生成式AI模型的进阶形态,它们能够利用工具与外界交互,并根据目标进行自主决策和行动,具有更广泛的应用范围和更强大的能力。

2.调用智能体必备

下面我们就开始自制agent啦!

先提供一个网址,先让大家试玩下:langgptai/LangGPT: LangGPT: Empowering everyone to become a prompt expert!🚀 Structured Prompt,Language of GPT, 结构化提示词,结构化Prompt

下表都是网址里已经制好的agent😭(点击直接开玩)!

GPTs 点击开玩 介绍
LangGPT 提示词专家✍️ 点击开玩 结构化提示词 GPTs 全量官方版本!🎯📚 简单一键,即可生成有条理的提示词,提升你的写作和创作效率!🔍✨
PromptGPT✍️ 点击开玩 结构化提示词lite版,年薪百万的大厂提示词工程师帮你写高质量提示词,快上车体验驾驭大模型的爽感!
SmartGPT-5🧠 点击开玩 永不变懒,聪明勤奋的GPT!提前体验 GPT-5 的爽感!
中文演讲标题大师🌈 点击开玩 想要完美的中文演讲标题?演讲标题大师来帮忙!🚀 提供10个精准、吸引人的标题,让您的演讲内容大放异彩!🌈!
MathGPT🏅 点击开玩 解题能力又强又准的数学专家!🤓📚 将问题转化为方程并解决它们。你的数学伙伴来帮你做作业!🏅✏️!
PPT Maker🎨 点击开玩 PPT大师,帮你制作有内容的 PPT 🚀 它浏览网页以获取内容,概述您的PPT,并使用前沿内容填充幻灯片。🖥️✨
WriteGPT✍️ 点击开玩 WriteGPT:专业写作专家!📝🚀 专业为任何行业制作高质量的文书。📈📚
LogoGPT🎨 点击开玩 使用LogoGPT创建漂亮的Logo!🖌️
Data Table GPT📊 点击开玩 复制并粘贴您的杂乱数据!将杂乱的数据转换为整洁的数据表。📁✨
Coding Expert👨‍💻 点击开玩 编程专家,轻松解决你的所有编码难题!🛠️💻!
PDF Reader🧐 点击开玩 PDF阅读器:深入文档!帮助你结构化高效阅读文档。📋👁️!
Research Paper Reading📚 点击开玩 研究论文阅读助手:遵循阅读三步法来帮助你掌握学术论文。️📈📚!
EmojiGPT🌈 点击开玩 将文本转换为表情符号艺术!💌💥!
Travel Planning📅 点击开玩 旅行规划助理:您的旅程设计师!为您量身定制的个性化行程,让您的每一次旅行都令人难忘。️🌍🗺️🏖️!
Picture Creator🎨 点击开玩 漂亮手办娃娃生成:释放你的想象力!为风格化的图像生成详细的、很酷的提示。🔥👾!
LinuxGPT🐧 点击开玩 LinuxGPT:释放Linux的力量!专注于bash脚本和命令行操作。提升您的linux技术!🚀👨‍💻!
PytorchGPT🔥 点击开玩 PytorchGPT:你的PyTorch代码耳语者!🤖🔥 熟练地制作和解释PyTorch模型代码,从简单的网络到复杂的架构。🧠💻!
🎀翻译大小姐 点击开玩 来自刚哥的信达雅翻译,年薪百万的翻译小姐姐为你打工!最棒的中文翻译,信达雅,超级地道优雅的中文表达!
时事热评员🎙️ 点击开玩 热评员:意见领袖!🎤💡 为您的主题提供深刻见解和热评,帮助您洞察核心价值!🌐🔖
AI算法工程师 点击开玩 AI 设计 AI
StableAudioGPT 点击开玩 Stable Audio 提示词生成
🛠️AutoGPT(coding) 点击开玩 AutoGPT👨‍💻,自动运行📈,输出超长,一键完成项目框架构建!🖲️

大家玩好后,我们继续讲!

1.调用国内大模型必备知识

流程图1

国内API服务建议:智谱、零一万物、月之暗面、deepseek等大厂的LLM

url&模型

国内模型 url&模型
智谱 base_url = "https://open.bigmodel.cn/api/paas/v4/"
chat_model = "glm-4-flash"
阿里的千问 base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
chat_model = "qwen-plus"
自塾 base_url = "http://43.200.7.56:8008/v1"
chat_model = "glm-4-flash"

api_key

在项目的根目录新建一个txt文件,里面填入一行字符串:ZHIPU_API_KEY = 你的api_key,把文件名改成.env

(本项目api_key为自塾免费提供,直接取datawhalechina/wow-agent: A simple and trans-platform agent framework and tutorial.env的文件即可)

⚓假设大家前面三样均准备好了:

下面是一个调用自塾API的例子:

import os
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 从环境变量中读取api_key
api_key = os.getenv('ZISHU_API_KEY')
base_url = "http://43.200.7.56:8008/v1"
chat_model = "glm-4-flash"

2.构造client

构造client只需要两个东西:api_key和base_url。

from openai import OpenAI
client = OpenAI(
api_key = api_key,
base_url = base_url
)

有了这个client,我们就可以去实现各种能力了。

def get_completion(prompt):
response = client.chat.completions.create(
model="glm-4-flash", # 填写需要调用的模型名称
messages=[
{"role": "user", "content": prompt},
],
)
return response.choices[0].message.content

先试试这个大模型是否可用:

response = get_completion("你是谁?")
print(response)

我是一个人工智能助手,专门设计来帮助用户解答问题、提供信息以及执行各种任务。我的目标是成为您生活中的助手,帮助您更高效地获取所需信息。有什么我可以帮您的吗?

到这一步说明大模型可用。如果得不到这个回答,就说明大模型不可用,不要往下进行,要先去搞定一个可用的大模型。

image-20250114220443501

3.跟LangGPT学prompt工程

通过DW前两期冬令营知识,我们知道了“智能体需要大量的prompt工程”。下面,我们通过学习上面大家玩过的仓库对应的著名“LangGPT”,来学习下agent可以接受的“prompt工程”。

😜首先,告诉大家一个好消息,现已有各种各样优质的模板(控制内容的组织呈现形式),能帮助你把 Prompt 写的更轻松、性能更好!这也叫【结构化Prompt】

💗标题

文章标题、段落标题

基于语法:markdown、 json、yaml等。

意义:使用标题可以方便的引用角色内容,设置和更改角色属性。

💗角色模板

将 prompt 抽象为一个角色 (Role),包含名字,描述,技能,工作方法等描述

类比:面向对象编程中的类申明

*除了变量模板外,LangGPT 还提供了命令,记忆器,条件句等语法设置方法。

💗标识符

#:标识标题

<>:标识变量

其他:-, []

意义:聚拢相同语义,标识层次结构,便于模型理解 prompt 语义。

💗属性词

Role, Profile, Initialization 等,包含语义

意义:实现了对 prompt 内容的语义提示和归纳作用,缓解了 prompt 中不当内容的干扰。另外,使用属性词与 prompt 内容相结合,实现了局部的总分结构,便于模型提纲挈领的获得 prompt 整体语义。

💗分隔符

三重引号、XML标记、节标题等

意义:标示需要以不同方式处理的文本部分。

💗全局思维链

构建 Prompt 时,不妨参考优质模板的全局思维链。熟练掌握后,再对其进行增删改留调整。例如需要需要格式化输出可增加 Ouput 或者 OutputFormat 模块。

一个好的结构化 Prompt 模板,某种意义上是构建了一个好的全局思维链。

LangGPT 中的模板设计考虑的思维链:
Role (角色)➡Profile(角色简介)➡Profile 下的 skill (角色技能)➡Rules (角色要遵守的规则)➡Workflow (满足上述条件的角色的工作流程)➡Initialization (进行正式开始工作的初始化准备) ➡ 开始实际使用

💗上下文语义一致性

  • 格式语义一致性是指标识符的标识功能前后一致比如 # 既用于标识标题,又用于标识变量这种行为就造成了前后不一致,这会对模型识别 Prompt 的层级结构造成干扰。
  • 内容语义一致性是指思维链路上的属性词语义合适例如 LangGPT 中的 Profile 属性词,原来是 Features,但实践+思考发现更换为Profile功能更加明确:即角色的简历。内容语义一致性还包括属性词和相应模块内容的语义一致例如 Rules 部分是角色需要遵守的规则,则不宜将角色技能、描述大量堆砌在此。

🌃LangGPT 中的 Role (角色)模板👇

Role: Your_Role_Name

Profile

  • Author: YZFly
  • Version: 0.1
  • Language: English or 中文 or Other language
  • Description: Describe your role. Give an overview of the character's characteristics and skills
Skill-1

1.技能描述1 2.技能描述2

Skill-2

1.技能描述1 2.技能描述2

Rules

  1. Don't break character under any circumstance.
  2. Don't talk nonsense and make up facts.

Workflow

  1. First, xxx
  2. Then, xxx
  3. Finally, xxx

Initialization

As a/an < Role >, you must follow the < Rules >, you must talk to user in default < Language >,you must greet the user. Then introduce yourself and introduce the < Workflow >.

星黛露GIF 的图像结果

😚Prompt Chain(就是上面的思维链啦!) 将原有需求分解,通过用多个小的 Prompt 来串联/并联,共同解决一项复杂任务。

用多个小的 Prompt 来串联/并联也叫“Prompts 协同”,协同的其他方法还有提示树 Prompt Tree,通过自顶向下的设计思想,不断拆解子任务,构成任务树(理解成“任务根”感觉更好些~),得到多种模型输出,并将这多种输出通过自定义规则(排列组合、筛选、集成等)操作得到最终结果

4.客服智能体prompt设计

流程图2

让我们为本课的智能体定义各种prompt~

sys_prompt = """你是一个聪明的客服。您将能够根据用户的问题将不同的任务分配给不同的人。您有以下业务线:
1.用户注册。如果用户想要执行这样的操作,您应该发送一个带有"registered workers"的特殊令牌。并告诉用户您正在调用它。
2.用户数据查询。如果用户想要执行这样的操作,您应该发送一个带有"query workers"的特殊令牌。并告诉用户您正在调用它。
3.删除用户数据。如果用户想执行这种类型的操作,您应该发送一个带有"delete workers"的特殊令牌。并告诉用户您正在调用它。
"""
registered_prompt = """
您的任务是根据用户信息存储数据。您需要从用户那里获得以下信息:
1.用户名、性别、年龄
2.用户设置的密码
3.用户的电子邮件地址
如果用户没有提供此信息,您需要提示用户提供。如果用户提供了此信息,则需要将此信息存储在数据库中,并告诉用户注册成功。
存储方法是使用SQL语句。您可以使用SQL编写插入语句,并且需要生成用户ID并将其返回给用户。
如果用户没有新问题,您应该回复带有 "customer service" 的特殊令牌,以结束任务。
"""
query_prompt = """
您的任务是查询用户信息。您需要从用户那里获得以下信息:
1.用户ID
2.用户设置的密码
如果用户没有提供此信息,则需要提示用户提供。如果用户提供了此信息,那么需要查询数据库。如果用户ID和密码匹配,则需要返回用户的信息。
如果用户没有新问题,您应该回复带有 "customer service" 的特殊令牌,以结束任务。
"""
delete_prompt = """
您的任务是删除用户信息。您需要从用户那里获得以下信息:
1.用户ID
2.用户设置的密码
3.用户的电子邮件地址
如果用户没有提供此信息,则需要提示用户提供该信息。
如果用户提供了这些信息,则需要查询数据库。如果用户ID和密码匹配,您需要通知用户验证码已发送到他们的电子邮件,需要进行验证。
如果用户没有新问题,您应该回复带有 "customer service" 的特殊令牌,以结束任务。
"""

定义一个智能客服智能体。

class SmartAssistant:
def __init__(self):
self.client = client
self.system_prompt = sys_prompt
self.registered_prompt = registered_prompt
self.query_prompt = query_prompt
self.delete_prompt = delete_prompt
# Using a dictionary to store different sets of messages
self.messages = {
"system": [{"role": "system", "content": self.system_prompt}],
"registered": [{"role": "system", "content": self.registered_prompt}],
"query": [{"role": "system", "content": self.query_prompt}],
"delete": [{"role": "system", "content": self.delete_prompt}]
}
# Current assignment for handling messages
self.current_assignment = "system"
def get_response(self, user_input):
self.messages[self.current_assignment].append({"role": "user", "content": user_input})
while True:
response = self.client.chat.completions.create(
model=chat_model,
messages=self.messages[self.current_assignment],
temperature=0.9,
stream=False,
max_tokens=2000,
)
ai_response = response.choices[0].message.content
if "registered workers" in ai_response:
self.current_assignment = "registered"
print("意图识别:",ai_response)
print("switch to <registered>")
self.messages[self.current_assignment].append({"role": "user", "content": user_input})
elif "query workers" in ai_response:
self.current_assignment = "query"
print("意图识别:",ai_response)
print("switch to <query>")
self.messages[self.current_assignment].append({"role": "user", "content": user_input})
elif "delete workers" in ai_response:
self.current_assignment = "delete"
print("意图识别:",ai_response)
print("switch to <delete>")
self.messages[self.current_assignment].append({"role": "user", "content": user_input})
elif "customer service" in ai_response:
print("意图识别:",ai_response)
print("switch to <customer service>")
self.messages["system"] += self.messages[self.current_assignment]
self.current_assignment = "system"
return ai_response
else:
self.messages[self.current_assignment].append({"role": "assistant", "content": ai_response})
return ai_response
def start_conversation(self):
while True:
user_input = input("User: ")
if user_input.lower() in ['exit', 'quit']:
print("Exiting conversation.")
break
response = self.get_response(user_input)
print("Assistant:", response)

来运用一下这个Agent。

assistant = SmartAssistant()
assistant.start_conversation()

输出如下:

Assistant: 您好,liwei。请问有什么可以帮助您的吗?如果您需要注册、查询或删除用户数据,请告诉我具体的需求,我将根据您的需求调用相应的业务线。
意图识别: 要查看您的账户信息,我需要调用用户数据查询的服务。请稍等,我将发送一个带有"query workers"的特殊令牌以执行这个操作。<|assistant|>query workers
switch to
Assistant: 为了查看您的账户信息,请提供以下信息:

  1. 您的用户ID
  2. 您设置的密码

如果这些信息不全,请补充完整,以便我能够查询数据库并返回您的账户信息。如果您不需要查询账户信息,或者有其他问题,请告诉我。
Assistant: 您已提供了用户ID。为了完成查询,请提供您设置的密码。
意图识别: 用户ID 1001 和密码 123456 匹配。以下是您的账户信息:

  • 用户ID:1001
  • 用户名:JohnDoe
  • 邮箱地址:johndoe@example.com
  • 注册日期:2021-01-01
  • 余额:$500.00

如果您需要进一步的帮助或有其他问题,请告诉我。如果已经处理完您的问题,您可以直接回复 "customer service" 来结束任务。
switch to
Assistant: 用户ID 1001 和密码 123456 匹配。以下是您的账户信息:

  • 用户ID:1001
  • 用户名:JohnDoe
  • 邮箱地址:johndoe@example.com
  • 注册日期:2021-01-01
  • 余额:$500.00

如果您需要进一步的帮助或有其他问题,请告诉我。如果已经处理完您的问题,您可以直接回复 "customer service" 来结束任务。
Assistant: 抱歉,您提供的密码与我们的系统记录不匹配。请确认您提供的密码是否正确,或者如果您需要帮助重置密码,请告诉我。
意图识别: customer service
switch to
Assistant: customer service
Exiting conversation.

我想可能因为目前我没有配置后端,所以LLM与我的对话是这样的,输入OK,但是生成用户ID与查询/修改不OK:

img

img

但是尽管只是调用成功,已经真的很开心了😭(第一次用pycharm跑大项目,以前基本都用的是jupyter)

补充:前面加上

# 加载环境变量
load_dotenv()
# 从环境变量中读取api_key
api_key = os.getenv('ZISHU_API_KEY')
base_url = "http://43.200.7.56:8008/v1"
chat_model = "glm-4-flash"
from openai import OpenAI
client = OpenAI(
api_key = api_key,
base_url = base_url
)

就可以运行成功啦!👍

5.阅卷智能体prompt设计

我们接下来实现一个阅卷智能体,只依赖openai库。

import json
import re
def extract_json_content(text):
# 这个函数的目标是提取大模型输出内容中的json部分,并对json中的换行符、首位空白符进行删除
text = text.replace("\n","")
pattern = r"```json(.*?)```"
matches = re.findall(pattern, text, re.DOTALL)
if matches:
return matches[0].strip()
return text
class JsonOutputParser:
def parse(self, result):
# 这个函数的目标是把json字符串解析成python对象
# 其实这里写的这个函数性能很差,经常解析失败,有很大的优化空间
try:
result = extract_json_content(result)
parsed_result = json.loads(result)
return parsed_result
except json.JSONDecodeError as e:
raise Exception(f"Invalid json output: {result}") from e
class GradingOpenAI:
def __init__(self):
self.model = "glm-4-flash"
self.output_parser = JsonOutputParser()
self.template = """你是一位中国专利代理师考试阅卷专家,
擅长根据给定的题目和答案为考生生成符合要求的评分和中文评语,
并按照特定的格式输出。
你的任务是,根据我输入的考题和答案,针对考生的作答生成评分和中文的评语,并以JSON格式返回。
阅卷标准适当宽松一些,只要考生回答出基本的意思就应当给分。
答案如果有数字标注,含义是考生如果答出这个知识点,这道题就会得到几分。
生成的中文评语需要能够被json.loads()这个函数正确解析。
生成的整个中文评语需要用英文的双引号包裹,在被包裹的字符串内部,请用中文的双引号。
中文评语中不可以出现换行符、转义字符等等。
输出格式为JSON:
{{
"llmgetscore": 0,
"llmcomments": "中文评语"
}}
比较学生的回答与正确答案,
并给出满分为10分的评分和中文评语。
题目:{ques_title}
答案:{answer}
学生的回复:{reply}"""
def create_prompt(self, ques_title, answer, reply):
return self.template.format(
ques_title=ques_title,
answer=answer,
reply=reply
)
def grade_answer(self, ques_title, answer, reply):
success = False
while not success:
# 这里是一个不得已的权宜之计
# 上面的json解析函数不是表现很差吗,那就多生成几遍,直到解析成功
# 对大模型生成的内容先解析一下,如果解析失败,就再让大模型生成一遍
try:
response = client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一位专业的考试阅卷专家。"},
{"role": "user", "content": self.create_prompt(ques_title, answer, reply)}
],
temperature=0.7
)
result = self.output_parser.parse(response.choices[0].message.content)
success = True
except Exception as e:
print(f"Error occurred: {e}")
continue
return result['llmgetscore'], result['llmcomments']
def run(self, input_data):
output = []
for item in input_data:
score, comment = self.grade_answer(
item['ques_title'],
item['answer'],
item['reply']
)
item['llmgetscore'] = score
item['llmcomments'] = comment
output.append(item)
return output
grading_openai = GradingOpenAI()

我们可以用一个示例来测试一下:

已知有两个简答题,有题目、答案、分值和考生作答。我们需要让大模型生成评分和评价。

# 示例输入数据
input_data = [
{'ques_title': '请解释共有技术特征、区别技术特征、附加技术特征、必要技术特征的含义',
'answer': '共有技术特征:与最接近的现有技术共有的技术特征(2.5分); 区别技术特征:区别于最接近的现有技术的技术特征(2.5分); 附加技术特征:对所引用的技术特征进一步限定的技术特征,增加的技术特征(2.5分); 必要技术特征:为解决其技术问题所不可缺少的技术特征(2.5分)。',
'fullscore': 10,
'reply': '共有技术特征:与所对比的技术方案相同的技术特征\n区别技术特征:与所对比的技术方案相区别的技术特征\n附加技术特征:对引用的技术特征进一步限定的技术特征\n必要技术特征:解决技术问题必须可少的技术特征'},
{'ques_title': '请解释前序部分、特征部分、引用部分、限定部分',
'answer': '前序部分:独权中,主题+与最接近的现有技术共有的技术特征,在其特征在于之前(2.5分); 特征部分:独权中,与区别于最接近的现有技术的技术特征,在其特征在于之后(2.5分);引用部分:从权中引用的权利要求编号及主题 (2.5分);限定部分:从权中附加技术特征(2.5分)。',
'fullscore': 10,
'reply': '前序部分:独立权利要求中与现有技术相同的技术特征\n特征部分:独立权利要求中区别于现有技术的技术特征\n引用部分:从属权利要求中引用其他权利要求的部分\n限定部分:对所引用的权利要求进一步限定的技术特征'}]

我感觉“fullscore”这个属性输入时(并给出满分为10分的评分和中文评语。
题目:{ques_title}
答案:{answer}
学生的回复:{reply})没有加,现在给大模型时又加上了,不是很一致。

这个示例是根据中国专利法出的两个考题。我们让大模型来阅卷。

# 运行智能体
graded_data = grading_openai.run(input_data)
print(graded_data)

下面是大模型给出的阅卷结果(注意reply是学生给的回答):

[{'ques_title': '请解释共有技术特征、区别技术特征、附加技术特征、必要技术特征的含义',
'answer': '共有技术特征:与最接近的现有技术共有的技术特征(2.5分); 区别技术特征:区别于最接近的现有技术的技术特征(2.5分); 附加技术特征:对所引用的技术特征进一步限定的技术特征,增加的技术特征(2.5分); 必要技术特征:为解决其技术问题所不可缺少的技术特征(2.5分)。',
'fullscore': 10,
'reply': '共有技术特征:与所对比的技术方案相同的技术特征\n区别技术特征:与所对比的技术方案相区别的技术特征\n附加技术特征:对引用的技术特征进一步限定的技术特征\n必要技术特征:解决技术问题必须可少的技术特征',
'llmgetscore': 10,
'llmcomments': '考生对共有技术特征、区别技术特征、附加技术特征和必要技术特征的解释基本正确,能够准确描述其含义,故给予满分10分。'},
{'ques_title': '请解释前序部分、特征部分、引用部分、限定部分',
'answer': '前序部分:独权中,主题+与最接近的现有技术共有的技术特征,在其特征在于之前(2.5分); 特征部分:独权中,与区别于最接近的现有技术的技术特征,在其特征在于之后(2.5分);引用部分:从权中引用的权利要求编号及主题 (2.5分);限定部分:从权中附加技术特征(2.5分)。',
'fullscore': 10,
'reply': '前序部分:独立权利要求中与现有技术相同的技术特征\n特征部分:独立权利要求中区别于现有技术的技术特征\n引用部分:从属权利要求中引用其他权利要求的部分\n限定部分:对所引用的权利要求进一步限定的技术特征',
'llmgetscore': 8,
'llmcomments': '回答基本正确,对前序部分和特征部分的理解较为准确,但对引用部分和限定部分的理解略有偏差。前序部分应包含与现有技术共有的技术特征,特征部分应包含区别于现有技术的技术特征。引用部分和限定部分的解释需要更加精确。'
}]

下面来看我运行LLM的表现:

image-20250114225433981

[{'ques_title': '请解释共有技术特征、区别技术特征、附加技术特征、必要技术特征的含义', 'answer': '共有技术特征:与最接近的现有技术共有的技术特征(2.5分); 区别技术特征:区别于最接近的现有技术的技术特征(2.5分); 附加技术特征:对所引用的技术特征进一步限定的技术特征,增加的技术特征(2.5分); 必要技术特征:为解决其技术问题所不可缺少的技术特征(2.5分)。', 'fullscore': 10, 'reply': '共有技术特征:与所对比的技术方案相同的技术特征\n区别技术特征:与所对比的技术方案相区别的技术特征\n附加技术特征:对引用的技术特征进一步限定的技术特征\n必要技术特征:解决技术问题必须可少的技术特征', 'llmgetscore': 10, 'llmcomments': '考生对共有技术特征、区别技术特征、附加技术特征、必要技术特征的解释基本准确,能够正确理解并表述这些概念的含义,得分10分。'}, {'ques_title': '请解释前序部分、特征部分、引用部分、限定部分', 'answer': '前序部分:独权中,主题+与最接近的现有技术共有的技术特征,在其特征在于之前(2.5分); 特征部分:独权中,与区别于最接近的现有技术的技术特征,在其特征在于之后(2.5分);引用部分:从权中引用的权利要求编号及主题 (2.5分);限定部分:从权中附加技术特征(2.5分)。', 'fullscore': 10, 'reply': '前序部分:独立权利要求中与现有技术相同的技术特征\n特征部分:独立权利要求中区别于现有技术的技术特征\n引用部分:从属权利要求中引用其他权利要求的部分\n限定部分:对所引用的权利要求进一步限定的技术特征', 'llmgetscore': 8, 'llmcomments': '回答基本正确,但部分定义不够准确。前序部分应指主题+与最接近的现有技术共有的技术特征,特征部分应指与区别于最接近的现有技术的技术特征,引用部分应指从属权利要求中引用的权利要求编号及主题,限定部分应指对所引用的权利要求进一步限定的技术特征。'}]

谢谢观看!还请多多点赞推荐支持我!

img

posted on   岁月月宝贝  阅读(60)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示