news 2026/9/14 23:10:19

pydantic_ai 意图识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pydantic_ai 意图识别

code

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel class IntentEnum(str, Enum): eat = "吃饭" action = "运动" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): intent: IntentEnum confidence: float | None = None load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" 根据用户输入判断其意图。只返回意图标签和(可选)置信度。 用户输入可能是自然语言查询。 """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "明天去上海午饭怎么办?", "你喜欢打篮球吗", "我想听个笑话" ] for text in texts: intent, conf = classify_intent(text) print(f"输入: {text}") print(f"意图: {intent}, 置信度: {conf}") print("----")

输出

输入: 明天去上海午饭怎么办? 意图: IntentEnum.eat, 置信度: 0.8 ---- 输入: 你喜欢打篮球吗 意图: IntentEnum.UNKNOWN, 置信度: None ---- 输入: 我想听个笑话 意图: IntentEnum.UNKNOWN, 置信度: 0.8 ----

结果枚举限制

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel class MLType(str, Enum): regression = "回归" classifier = "分类" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): data_location: str ml_type_name: MLType data_source_limit: float | None = None load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可", "我想听个笑话" ] for text in texts: out = intent_agent.run_sync(user_prompt=text).output print(f"输入: {text}") print(f"数据位置:{out.data_location},模型类型:{out.ml_type_name},数据源限制:{out.data_source_limit}") print("----") """ 输出结果: 输入: 对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可 数据位置:/data/1.txt,模型类型:MLType.regression,数据源限制:125.0 ---- 输入: 我想听个笑话 数据位置:用户请求讲笑话,模型类型:MLType.UNKNOWN,数据源限制:None ---- """

system pt

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel, Field class MLType(str, Enum): regression = "回归" classifier = "分类" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): data_location: str = Field(..., description="数据路径") ml_type_name: MLType = Field(..., description="希望用来机器学习的模型类别") data_source_limit: float | None = Field(..., description="探索性数据分析,从全量中抽样的数据行数") load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" 有些护具无法意图识别,则返回None填充即可 """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可", "我想听个笑话" ] for text in texts: out = intent_agent.run_sync(user_prompt=text).output print(f"输入: {text}") print(f"数据位置:{out.data_location},模型类型:{out.ml_type_name},数据源限制:{out.data_source_limit}") print("----") """ 输出结果: 输入: 对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可 数据位置:/data/1.txt,模型类型:MLType.regression,数据源限制:125.0 ---- 输入: 我想听个笑话 数据位置:用户请求讲笑话,模型类型:MLType.UNKNOWN,数据源限制:None ---- """
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 10:23:56

Kotaemon AWS EC2部署实例:国际业务首选

Kotaemon AWS EC2部署实例:国际业务首选 在跨国企业加速数字化转型的今天,客户对智能客服系统的期待早已超越“能回答问题”这一基础要求。他们希望获得准确、连贯且符合本地语境的服务体验——而这背后,是一整套复杂技术栈的协同运作。尤其当…

作者头像 李华
网站建设 2026/9/14 11:26:39

实在没货,简历(软件测试)咋写?

简历咋写,这是很多没有【软件测试实际工作经验】的同学们非常头疼的事情。 简历咋写?首先你要知道简历的作用。 简历的作用是啥呢?一句话就是:让HR小姐姐约你。 如何让HR看你一眼,便相中你的简历,实现在…

作者头像 李华
网站建设 2026/9/14 8:28:34

网约车服务端线上流量巡检与测试验收技术

网约车服务端承接了网约车核心交易流程整体链路串联工作,其涵盖交易细粒度的场景达百万级别,核心交易链路涉及几百个下游服务。这督促我们的质量保障手段要粗细结合,既能保障核心业务的服务可用性,又要保障海量用户场景的正确运行…

作者头像 李华
网站建设 2026/9/14 19:38:37

公考日记7

乘法:

作者头像 李华
网站建设 2026/9/15 8:51:41

科研实验室温湿度监控新范式:以太网 POE 技术全场景解决方案

科研实验室利用以太网POE供电温湿度传感器进行温湿度监控系统的方案设计需要考虑哪些因素?结合科研实验室的场景特殊性、POE 技术特性及温湿度监控的核心需求,方案设计需重点考虑以下8 大核心因素,覆盖技术选型、场景适配、系统稳定性、合规性…

作者头像 李华