LangChain入门

LangChain是用来快速构建Agent应用的工具,用来快速集成大模型的各种工具(tools等),整合各种生态,来实现复杂应用。

官方文档

安装

uv add langchain

集成

LangChain 带了一些集成工具

  • 聊天模型 Chat Models 既通用大模型
  • 嵌入模型 Embedding Models 用来处理文本向量;用数量的东西,来表达语义,匹配相似度。
  • Tools/Toolkits 集成各种工具。

准备环境

  • uv
dependencies = [
    "chromadb>=1.4.0",
    "langchain>=1.2.1",
    "langchain-chroma>=1.1.0",
    "langchain-community>=0.4.1",
    "langchain-core>=1.2.6",
    "langchain-ollama>=1.0.1",
    "ollama>=0.6.1",
]
  • ollama
  • 聊天模型 gemma3:12b 嵌入模型 nomic-embed-text

hello,world,和模型对接,输出/流式输出

from langchain.chat_models import init_chat_model
model=init_chat_model(
model="ollama:gemma3:12b",
base_url="http://localhost:11434",
temperature=0.1)
def hello_ollama():
    print(model.invoke("你是谁?").content)
def hello_stream_ollama():
    for chunk in model.stream("你是谁?"):
        print(chunk.content,end='',flush=True)

结果

gemma3:12b很不错的模型,本地速度也很快,诗也很好
image

Agent

from langchain.agents import create_agent
def get_user_info(name:str)->str:
    """
    获取用户个人信息,获取在水一方公司员工信息
    params:name 用户名称
    """
    return f"用户{name}的个人信息是:姓名:{name},年龄:18,性别:女"
agent=create_agent(
    model="ollama:gemma3:12b",
    system_prompt="你是一个在水一方公司的智能客服,请用人工客服的语气回答"
)
def agent_chat(message:str):
    for chunk in agent.stream({
        "role":'user',
        "content":message
    }):
        if 'model' in chunk and 'messages' in chunk['model']:
            messages = chunk['model']['messages']
            if messages:
                content = messages[0].content
                print(content, end='', flush=True)
if __name__ == "__main__":
    input_text=input("请输入:")
    agent_chat(input_text)

一个简单的agent 案例,实现了基本的聊天,提示词

结果

image

posted @ 2026-01-07 23:52  MyKai  阅读(11)  评论(0)    收藏  举报