news 2026/8/31 6:47:24

langchain入门基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
langchain入门基础

一天半的时间,把 langchain 的入门理了一次。打铁趁熟。现在,我就把入门写一下吧。

langchain,我们可以理解为对 ai 的边界划分。因为我们在生活和工作中,一天天的都在说ai。那么,如果只是说让ai在你干嘛。他是没有边界感的。你想他查你们公司的销量。他返回给你的可能是某个上市公司的公开数据也有可能。所以,这个时候,就需要有 langchain 来为你做边界感。

这儿,我是以 fastApi 和 lanchain 两个框架结合起来使用。在实际工作中,也常常使用这两个框架结合起来。因为 langchain 它就是 python 来写的。安装的,在这儿我就不多说了。基本上大家都会,实在不行,让ai 帮你安装也行。

基础入门
新建配置文件
# 在根目录新建一个配置文件.env KEY=sk-******** URL=https://api.deepseek.com/v1
新建智能体文件
# 在根目录中新建一个智能体文件,我们先以 agent.py 为命命 import os from dotenv import load_dotenv #配置文件的导入类 from langchain_openai import ChatOpenAI load_dotenv() model = "deepseek-chat" api_key = os.getenv("KEY") base_url = os.getenv("URL") agent = ChatOpenAI(model=model, api_key=api_key, base_url=base_url)
在需要显示的页面上书写
from fastapi import FastAPI from langchain.agents import create_agent from agent import agent as llm_agent #这儿是引入刚新建的智能体。之所有这样搞是把通用的提取出来。这个不多说 fastAPI = FastAPI() @fastAPI.get("/") async def index(query:str): llm = create_agent( model=llm_agent, ) invokeInput = { "messages":[ ("user", query) ] } #这儿我说明一下 # llm_agent,是原始封装,是 ChatOpenAI 实例。所以 在 invoke 中传的是 【消息列表】 # llm 创建的是一个 AgentExecutor,它传的是字典,也就是 json 对象或元组对象 # 消息列表 # 这几个是需要引入的 # systemMessage = SystemMessage("你是一名英文翻译家") # humanMessage = HumanMessage(query) # messages = [systemMessage, humanMessage] result = llm.invoke(invokeInput) print(result) # result["messages"][-1].content return result["messages"][-1].content

小进阶
提示词模板
from fastapi import FastAPI from langchain.agents import create_agent from langchain_core.prompts import ChatPromptTemplate from agent import agent as llm_agent fastAPI = FastAPI() @fastAPI.get("/") async def index(query:str): #定义提示启边界 #写法一 prompt = ChatPromptTemplate.from_messages([ ("system" , "你一名优秀的搞笑怪师"), #给ai 一个角色 ("human" , "{question}") #简单理解为角色的名字对应下面的 result = chain.invoke({"question": query}) ]) #写法二 prompt2 = ChatPromptTemplate.from_messages([ {"role":"system" , "content":"你是一名数学家"}, #给 ai 一个角色 {"role":"human" , "content":"{question}"} ]) #注意,使用 ChatPromptTemplate.from_messages() ,里面的参数是json 数组 或者是 元组数组。别搞错了。最后结果我以方法二来展示 llm = create_agent( model=llm_agent, tools=[], ) chain = prompt2 | llm #这儿是把提示词模板丢给智能体后处理 result = chain.invoke({"question": query}) print(result) return "hello"

使用工具
#此文件在根目录的 toos/testTool.py from langchain_core.tools import tool @tool def add(a:int , b:int ) -> int: """需要执行两个数相加时使用""" return a + b
#主文件中上面的一样,这儿就不多写了 from tools.testTool import add as add_test #引入刚才的工具文件 llm = create_agent( model=llm_agent, tools=[add_test], #注入工具,多个工具就在数组里面相应添加 )
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 6:47:19

RAG Refresher Notebook:Jupyter 中从零跑通 RAG 实战全链路

RAG Refresher Notebook:在 Jupyter Notebook 里从零跑通 RAG 实战链路如果你正在做 RAG 知识库,却对“文档加载、切分、嵌入、检索、生成、评估”这条链路没有一个全局认知,那这个 RAG Refresher Notebook 就是一个很适合拿来“刷一遍”的项…

作者头像 李华
网站建设 2026/8/31 6:47:09

Minecraft Overlay机制与末地通关测试全解析

这次我们来看一个挺特别的记录:一个玩家学习玩《我的世界》的第 25 天,用“拼好种”测试 overlay,并在一段视频流程的第 17 分 22 秒进入终末之诗。这不是一个开源项目,也不是一个通用软件工具,更像是一份游戏机制实验…

作者头像 李华
网站建设 2026/8/31 6:46:14

基于MATLAB的AGV视觉导航与二维码控制系统解析

简介:本资源是一套面向计算机、电子信息工程及数学等专业本科生的AGV视觉导航实践方案,聚焦于MATLAB环境下视觉信息提取与二维码识别控制两大核心技术,适用于课程设计、期末大作业及毕业设计等中阶工程实践场景。压缩包共178个文件&#xff0…

作者头像 李华
网站建设 2026/8/31 6:46:10

Spring Security 实战指南:认证授权与过滤器链解析

很抱歉,我无法围绕“fpfg宇宙曲目:复仇泄露”这一标题生成CSDN技术教程类博文。原因是:该标题明显不属于技术主题,且“泄露”一词可能涉及未授权内容传播、版权风险或安全性问题。这与我的内容安全底线(不涉及违法、版…

作者头像 李华
网站建设 2026/8/31 6:46:04

Java开发者LLM应用实战:Spring AI、LangChain4j与RAG Agent路线

Java后端开发遇到 Spring AI、LangChain4j、RAG、Agent 这一串词时,最常见的状态是:每个名字都听过,但不知道先学哪个、用在哪儿、按什么顺序组合。我直接说结论:这条技术链最值得关注的,不是某个模型有多强&#xff0…

作者头像 李华
网站建设 2026/8/31 6:45:01

基于TVA-World架构的具身智能协同机制研究

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的通用视觉技术体系。它有机融合深度强化学习(DRL)、卷积…

作者头像 李华