LangChain python 版本 第一集

LangChain 官方文档:

python 复制代码
https://reference.langchain.com/python/langchain
models:
https://docs.langchain.com/oss/python/langchain/models
https://docs.langchain.com/oss/python/integrations/chat
https://reference.langchain.com/python/langchain-core/language_models
https://docs.langchain.com/oss/python/langchain/models#parameters
https://docs.langchain.com/oss/python/integrations/providers/ollama
提示词文档:
https://api-docs.deepseek.com/zh-cn/prompt-library
https://reference.langchain.com/python/langchain-core/prompts
https://docs.langchain.com/langsmith/prompt-engineering-concepts
https://docs.langchain.com/oss/python/langchain/messages

​python环境安装

python 复制代码
想让当前虚拟环境以后默认走清华源,可先执行:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
 
- 安装langchain
- 安装langchain-openai
- 安装openai
- 安装dotenv
- 安装langchain-core
 
 
# langchain 提供核心框架(Chain, Agent, Memory, Retriever等)
pip install  langchain -i https://pypi.tuna.tsinghua.edu.cn/simple
 
# 提供OpenAI专用组件(LLM, Chat, Embeddings等),依赖 openai SDK
pip install langchain-openai  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install  openai -i https://pypi.tuna.tsinghua.edu.cn/simple
 
 
# 通过 python-dotenv 库读取 env 文件中的环境变量,并加载到当前运行的环境中
pip install python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple
 
pip install langchain-core

本地大模型安装环境:
pip install -qU langchain-ollama
pip install -U ollama

langchain 0.3版本 与1.0版本的写法

0.3版本

python 复制代码
from langchain_openai import ChatOpenAI
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv(encoding='utf-8')
llm = ChatOpenAI(
    model="deepseek-v3.2",
    # 配置进环境变量
    api_key=os.getenv("QWEN_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
#
# # 2.提供问题,并调用llm
response = llm.invoke("你是谁")

print(response)
print()
print(response.content)

1.0版本

python 复制代码
# LangChain1.0+版本使用方式,目前主流

# 1.导入依赖
import os
from dotenv import load_dotenv
from langchain.chat_models import init_chat_model
#通过 python-dotenv 库读取 env 文件中的环境变量,并加载到当前运行的环境中
load_dotenv(encoding='utf-8')
model2 = init_chat_model(
    model="deepseek-v3",
    model_provider="openai",
    api_key=os.getenv("QWEN_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")

# 3.调用模型
print(model2.invoke("你是谁").content)

Model I/O 大模型接口

I/O三件套

1,输入提示词

2,调用模型

3,解析输出

参数作用:

本地模型部署 Ollama

Ollama 本地安装教程:

OllamaSetup.exe /DIR=D:\j\MySoftware\ollama

手动配置拉去大模型存放位置:

python 复制代码
环境变量
OLLAMA_MODELS
D:\devSoft\Ollama\models

ollama 常用命令

python 复制代码
Ollama 常用命令速查表  
 
| 命令 | 一句话说明 |
|---|---|
| `ollama pull llama3` | 下载指定模型(例:llama3)。 |
| `ollama run llama3` | 启动并进入该模型交互对话。 |
| `ollama list` | 列出本机已下载的所有模型。 |
| `ollama rm llama3` | 删除不再需要的模型以节省磁盘。 |
| `ollama cp llama3 my-llama3` | 本地复制/重命名模型。 |
| `ollama show llama3` | 查看模型详细信息(参数、大小等)。 |
| `ollama create my-model -f Modelfile` | 用自定义 Modelfile 构建新模型。 |
| `ollama serve` | 启动后台服务,供 API 调用。 |
| `ollama ps` | 查看当前正在运行的模型进程。 |
| `ollama stop llama3` | 停止正在运行的模型。 |

/bye

提示词

langchain 内置消息类型:

python 复制代码
spring AI
SYSTEM("system") 设定Ai 行为边界/角色/定位。指导AI 的行为和响应方式,设置AI 如何解释和回复输入的
USER("user") 用户原始提问输入,代表用户的输入他们向AI提出的问题,命令或陈述
ASSISTANT("assistant") ai返回的响应信息,定义为 "助手角色"消息,用它可以确保上下文能够连贯的交互;记忆对话,积累回答
TOOL("tool") 桥接外部服务,可以进行函数调用如,支付,数据查询等操作,类似调用第3方util工具类,

Langchain

python 复制代码
SystemMessage : 边界,角色,定位
HumanMessage:用户输入
AIMessage:模型输出
ToolMessage(v1.0)/FunctionMessage(v0.3) 工具消息

提示词模板

python 复制代码
PromptTemplate 提示词模板:
分类:
1,PromptTemplate:文本生成模型提示词模板,用户字符串拼接变量生成提示词
2,ChatPromptTemplate:聊天模型提示词模板,使用与如gpt-3.5turbo,gpt-4 等聊天模型
	消息模板:
		a,ChatMessagePromptTemplate
		b,SystemMessagePromptTemplate
		c,HumanMessagePromptTemplate
		d,AIMessagePromptTemplate
3,FewshotPromptTemplate:
4,PipelinePrompt :管道提示词模板,用于几个提示词组合在一起使用

提示词参数

在 LangChain 中,PromptTemplate 是构建提示词的核心组件,它允许我们创建可复用的模板,通过变量占位符动态生成提示词。理解其参数对于高效使用至关重要。

核心参数详解

python 复制代码
主要参数:
	template:定义提示词模板的字符串,其中包含文本和变量占位符(如{name}) ;
	input_variables: 列表,指定了模板中使用的变量名称,在调用模板时被替换;
	partial_variables:字典,用于定义模板中一些固定的变量名。这些值不需要再每次调用时被替换。
函数方法介绍:
	format():给input_variables变量赋值,并返回提示词。利用format() 进行格式化时就一定要赋值,否则会报错。当在template中未设置input_variables,则会自动忽略。

提示词请看下一章

相关推荐
shmily麻瓜小菜鸡1 小时前
JS/TS 易踩坑知识点 — 模块化与工程化类
开发语言·javascript·ecmascript
geovindu1 小时前
CSharp: Observer Pattern
开发语言·后端·观察者模式·设计模式·c#·.netcore·行为模式
萧鼎1 小时前
Python 高性能Web框架神器 FastAPI:自动生成API文、基于Pydant、异步请求处理全搞定
前端·python·fastapi
2601_962299881 小时前
Linux执行Python脚本方法
linux·python·脚本·解释器·shebang
郝学胜-神的一滴2 小时前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
旋生万物2 小时前
量子纠错容错率87%?螺旋拓扑码用“相位保护“给量子比特上保险(附Python)
python·ai编程·量子计算·量子纠错·螺旋计算
用户8356290780512 小时前
使用 Python 设置 Excel 页眉和页脚
后端·python
hyunbar2 小时前
LangChain 实战:什么是MiddleWare(中间件)?
中间件·langchain
王国强20092 小时前
LangChain 1.0 之后:从 Agent 框架走向 AI 应用运行时
langchain
databook2 小时前
异常值检测与处理方法总结
python·数据挖掘·数据分析