记录AI学习之LangChain 入门指南

LangChain 入门指南

一、什么是 LangChain?

LangChain 是一个用于简化大语言模型(LLM)应用开发的框架,支持将以下组件链接成工作流:

  • 大语言模型(如GPT-3.5、Llama)
  • 外部数据源(数据库、API)
  • 记忆模块(对话历史记录)

二、核心概念与模块

模块名称作用
Models对接多种LLM提供商(OpenAI/HuggingFace等)
Prompts管理动态提示模板
Chains将多个模块组合成工作流
Memory记录对话历史实现上下文感知
Indexes连接外部数据源进行文档检索
Agents根据需求自主选择工具(计算/搜索等)

三、基础语法与代码示例

1. 环境安装

pip install langchain==0.2.0 langchain-openai python-dotenv

2. 模型调用

from langchain_openai import OpenAI

# 初始化OpenAI模型(需要设置OPENAI_API_KEY环境变量)
llm = OpenAI(temperature=0.9)  # temperature控制生成随机性
print(llm.invoke("如何制作三明治?"))

3. 提示模板

from langchain.prompts import PromptTemplate

template = "给一个制作{product}的公司起个名字"
prompt = PromptTemplate(input_variables=["product"], template=template)

formatted_prompt = prompt.format(product="环保餐具")
print(formatted_prompt)  # 输出:给一个制作环保餐具的公司起个名字

4. 链式调用

from langchain.chains import LLMChain

chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run("智能手表"))  # 输出示例:"智界时刻科技"

5. 记忆模块

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory()
memory.save_context({"input": "你好"}, {"output": "有什么可以帮助您?"})

print(memory.load_memory_variables({}))
# 输出:{'history': 'Human: 你好\nAI: 有什么可以帮助您?'}

6. 代理工具

from langchain.agents import load_tools, initialize_agent

tools = load_tools(["llm-math"], llm=llm)  # 加载数学计算工具
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)

agent.run("2的128次方是多少?")  # 会自动调用计算器工具

四、综合应用示例

from langchain.chains import SimpleSequentialChain

# 创建第一个链:生成公司名称
name_chain = LLMChain(llm=llm, prompt=prompt)

# 创建第二个链:生成宣传口号
slogan_template = "为名为{company_name}的公司写一条宣传语"
slogan_prompt = PromptTemplate(input_variables=["company_name"], template=slogan_template)
slogan_chain = LLMChain(llm=llm, prompt=slogan_prompt)

# 连接两条链
overall_chain = SimpleSequentialChain(chains=[name_chain, slogan_chain], verbose=True)
overall_chain.run("太空探索")

五、注意事项

  1. 需要注册并配置OpenAI API Key

    • 使用OpenAI模型前需注册OpenAI平台并获取API密钥
    • 配置方式示例:
      import os
      os.environ["OPENAI_API_KEY"] = "您的密钥"
      
  2. 实际使用中建议增加错误处理机制

    try:
        response = llm.invoke("输入问题")
    except Exception as e:
        print(f"API调用失败: {str(e)}")
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值