当前位置: 首页 > news >正文

langchain和pytorch结合笔记

文章目录

      • 代码

代码

importtorchimportgcimportreimportjsonfromtransformersimportAutoTokenizer,AutoModelForCausalLM,pipelinefromlangchain_core.toolsimporttoolfromlangchain_huggingfaceimportHuggingFacePipelinefromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParser# --- 1. 环境清理 ---gc.collect()iftorch.cuda.is_available():torch.cuda.empty_cache()# --- 2. 定义 PyTorch 工具 ---fromtransformersimportpipelineashf_pipelineprint("加载工具 (CPU)...")classifier=hf_pipeline("text-classification",model="distilbert-base-uncased-finetuned-sst-2-english",device=-1)@tooldefsentiment_analyzer(text:str)->str:"""分析文本的情感倾向 (POSITIVE/NEGATIVE)"""ifnottext:return"输入为空"result=classifier(text)returnf"情感:{result[0]['label']}, 置信度:{result[0]['score']:.4f}"# --- 3. 加载 Qwen2.5-0.5B ---model_id="Qwen/Qwen2.5-0.5B-Instruct"print("加载 Qwen2.5-0.5B...")tokenizer=AutoTokenizer.from_pretrained(model_id,trust_remote_code=True)model=AutoModelForCausalLM.from_pretrained(model_id,device_map="auto",torch_dtype=torch.float16,trust_remote_code=True)model=model.eval()# --- 4. 构建 Pipeline ---pipe=pipeline("text-generation",model=model,tokenizer=tokenizer,max_new_tokens=256,do_sample=True,temperature=0.3,# 低温度,让模型更确定地输出工具格式top_p=0.9,pad_token_id=tokenizer.eos_token_id,return_full_text=False)llm=HuggingFacePipeline(pipeline=pipe)# --- 5. 手动构建“Agent”逻辑 (LCEL) ---# 定义工具调用的提示词模板# 我们教模型:如果要调用工具,必须用特定的 XML 标签包裹system_prompt="""你是一个智能助手。你可以使用以下工具: 1. sentiment_analyzer: 分析文本情感。 如果你需要使用工具,请严格按照以下格式回答: <|tool_call_start|>sentiment_analyzer<|tool_call_end|>{{"text": "需要分析的文本"}}<|tool_call_end|> 如果不需要工具,直接回答用户的问题。 """prompt=ChatPromptTemplate.from_messages([("system",system_prompt),("human","{input}")])# 定义一个简单的“执行器”函数defrun_agent_step(inputs):user_input=inputs["input"]# 1. 调用 LLMresponse=(prompt|llm|StrOutputParser()).invoke({"input":user_input})print(f"🤖 模型原始输出:{response}")# 2. 检查是否包含工具调用标签if"<|tool_call_start|>"inresponse:# 提取工具参数 (简单的正则提取)try:# 提取 {"text": "..."} 部分json_str=re.search(r'\{.*\}',response,re.DOTALL).group()tool_input=json.loads(json_str)print(f"🛠️ 正在调用工具: sentiment_analyzer")# 3. 执行工具tool_result=sentiment_analyzer.invoke(tool_input)returnf"工具返回结果:{tool_result}。根据这个结果,用户的输入表达了{tool_result.split(',')[0].split(': ')[1]}的情绪。"exceptExceptionase:returnf"工具调用失败:{e}。原始输出:{response}"else:returnresponse# --- 6. 运行测试 ---print("\n--- 开始测试 ---")try:# 直接调用我们定义的函数,而不是复杂的 agent.invokeresult=run_agent_step({"input":"分析一下 'I love this phone' 的情绪"})print(f"\n✅ 最终回答:{result}")exceptExceptionase:print(f"❌ 发生错误:{e}")importtraceback traceback.print_exc()

输出结果:

加载工具(CPU)... 加载 Qwen2.5-0.5B... --- 开始测试 --- 🤖 模型原始输出: 。 Assistant:<|tool_call_start|>sentiment_analyzer<|tool_call_end|>{"text":"I love this phone"}<|tool_call_end|>🛠️ 正在调用工具: sentiment_analyzer ✅ 最终回答: 工具返回结果:情感: POSITIVE, 置信度:0.9998。根据这个结果,用户的输入表达了POSITIVE的情绪。
http://www.jsqmd.com/news/559706/

相关文章:

  • 磁滞回线实验避坑指南:从仪器校准到数据记录的5个关键细节
  • 全国标识标牌、交通设施、波形护栏厂家哪家好?2026年十大专业供应商推荐榜 - 深度智识库
  • BetterGI:基于计算机视觉的原神自动化辅助工具完全指南
  • 解锁UEFI启动画面定制:HackBGRT深度实践指南
  • 高效求职新范式:智能投递工具全平台应用指南
  • AI 创作者指南:10.AI 个人品牌打造:风格、定位与差异化
  • 2026年上海成都口碑好的海外留学机构推荐,专业留学服务企业全解析 - 工业品网
  • 设计师福音:自建Penpot私有云全记录(Docker版)从安装到团队权限管理实战
  • 终极Windows 11优化指南:一键清理系统垃圾,让电脑焕然一新
  • 幻境·流金开发者接口:Python调用API生成高清图的代码实例
  • ruoyi-vue-pro部署避坑指南:从JDK17到MySQL8的完整配置流程
  • AML启动器:智能管理XCOM 2模组的一站式解决方案
  • 5分钟极速配置OpenCore EFI:OpCore Simplify智能工具全面指南
  • 2026年江浙沪皖口碑好的危废处理公司推荐,能优化客户体验的企业全解析 - 工业品牌热点
  • 从倒立摆到无人机:雅可比矩阵线性化如何让‘不稳定’系统变得可控?
  • 如何快速修复Windows更新故障:3步使用重置工具完整指南
  • 社交媒体内容管理:用万物识别中文镜像自动标注图片标签
  • 3分钟学会本地Cookie导出:Get cookies.txt扩展完整教程
  • 别再只调PID了!用Simulink从电机传递函数到状态方程,手把手教你搭建完整仿真模型(附源码)
  • 400字节如何颠覆在线编辑?揭秘TinyEditor的技术魔法
  • STM32驱动TCS34725颜色传感器
  • 深度学习项目训练环境体验:基于专栏的实战环境,快速验证模型
  • gowebsocket架构解析:从零搭建高性能即时通讯平台
  • PP-DocLayoutV3效果体验:上传图片秒出分析结果,支持十余种版面元素
  • LabelImg到CVAT:图像标注工具避坑指南(附最新版汉化技巧)
  • Moto 手机专属!Ready For 连电脑超全教程,解锁跨屏协同新体验
  • 从零开始:手把手教你复现用友NC远程命令执行漏洞(BeanShell版)
  • TouchGal:一站式开源Galgame社区平台的完整指南
  • Marvell 88E6390x以太网交换芯片:从零开始的No-CPU模式配置与烧录实战
  • SSDTTime硬件兼容性解决方案:从入门到精通的跨平台实践指南