拓冰建站拓冰建站
首页 / 资讯中心 / 正文

langchain入门基础

一天半的时间把 langchain 的入门理了一次。打铁趁熟。现在我就把入门写一下吧。langchain我们可以理解为对 ai 的边界划分。因为我们在生活和工作中一天天的都在说ai。那么如果只是说让ai在你干嘛。他是没有边界感的。你想他查你们公司的销量。他返回给你的可能是某个上市公司的公开数据也有可能。所以这个时候就需要有 langchain 来为你做边界感。这儿我是以 fastApi 和 lanchain 两个框架结合起来使用。在实际工作中也常常使用这两个框架结合起来。因为 langchain 它就是 python 来写的。安装的在这儿我就不多说了。基本上大家都会实在不行让ai 帮你安装也行。基础入门新建配置文件# 在根目录新建一个配置文件.env KEYsk-******** URLhttps://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(modelmodel, api_keyapi_key, base_urlbase_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( modelllm_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( modelllm_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( modelllm_agent, tools[add_test], #注入工具多个工具就在数组里面相应添加 )
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门