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很不错的模型,本地速度也很快,诗也很好
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 案例,实现了基本的聊天,提示词
结果



浙公网安备 33010602011771号