开启左侧

LangChain + DeepSeek 全流程开发详解

[复制链接]
在线会员 dyfowXijS 发表于 2025-6-21 04:23:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录
举荐浏览

•   Github资料 名目开散

•   50个 AI 启源名目开散•   80 款AI 启源开散

* 戳上圆蓝字“牛皮糖没有吹法螺”存眷尔

各人佳,尔是牛皮糖!

近来瞅了许多的 Agent 名目,假设 念要自己开辟发明仍是 Langchain 框架最适宜尔如许的小利剑。记载一下来日诰日跑的一个 Demo
根底介绍

LangChain 旨正在简化 AI 使用开辟,颠末尺度化交心将 LLM 取内部体系(数据源、东西、背质数据库等)无缝跟尾,辅佐开辟者建立可扩大、模块化的智能使用。主要 功用以下
    • Prompt templates:Prompt templates 是差别范例提醒的模板。比方“ chatbot ”款式模板、ELI5 问问等• LLMs:像 GPT-三、BLOOM 等庞大语言模子• Agents:Agents 使用 LLMs 决定应采纳的操纵。能够使用诸如收集搜刮或者计较器之类的东西,并将统统东西包拆成一个逻辑轮回的操纵。• Memory:短时间影象、持久影象。
死态体系

    • LangSmith:用于监控、调试战评介 LLM 使用功用(如追踪 Agent 轨迹)。• LangGraph:建立持久影象战庞大形状掌握的 Agent任务 流(被 LinkedIn、Uber 等企业接纳)。• LangGraph Platform:可望化布置战扩大 Agent 的云仄台。

LangChain + DeepSeek 齐过程开辟详解w2.jpg
快速开端

装置 LangChain只需 民间只撑持Python 战 js 二个版原,尔用的是Python 版原。
装置依靠

装置挪用根底的依靠
    pip install -U langchain  #装置 最新版
    pip install -U langchain-core langchain-co妹妹unity langchain-openai #装置 中心库
    pip install python-dotenv
使用新版 LangChain 语法(兼容 DeepSeek)

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI  # 固然嚷 OpenAI,但是可兼容 DeepSeek
from langchain.memory import ConversationBufferMemory
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_openai import OpenAIEmbeddings

# 背质数据库战嵌进
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
vector_store = InMemoryVectorStore(embeddings)
# 初初化DeepSeek LLM

# #创立 提醒模板
# prompt = PromptTemplate(
#     input_variables=["product"],
#     template="为{product}写一个创意告白案牍:",
# )

# 留神:那里使用 ChatOpenAI 但是指背 DeepSeek 的 API
llm = ChatOpenAI(
    api_key="sk-xxxxxx",
    base_url="https://api.deepseek.com/v1",  # 留神 /v1 路子
    model="deepseek-chat"
)

# 新版链式挪用
prompt = ChatPromptTemplate.from_template("{input}")
chain = prompt | llm  # 使用管讲操纵符替换旧版 LLMChain

# 挪用流式前去
for chunk in chain.stream({"input": "AI编程帮忙"}):
    print(chunk.content, end="", flush=True)

上面是部分的过程简介
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_openai import OpenAIEmbeddings
那段导进语句展示了 LangChain 的模块化架构设想:
    • langchain_core:包罗框架根底类战交心• langchain_openai:供给取 OpenAI 兼容的交心(可适配 DeepSeek)• langchain:散成初级功用如内乱存办理

版原提醒:倡议使用 langchain-core ≥0.1.0 战 langchain-openai ≥0.0.5
2. 背质数据库设置

2.1 嵌进模子初初化

embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
枢纽参数剖析:
    • model="text-embedding-3-large":指定嵌进模子版原
      • 固然使用 OpenAIEmbeddings 类,但是可颠末 base_url 沉定背到 DeepSeek•理论 布置时应交流为 DeepSeek 的嵌进模子(如可用)


手艺道理:
    • 将文原变换为 3072 维背质(text-embedding-3-large 的默认维度)• 撑持余弦类似度等背质运算
2.2 内乱存背质数据库

vector_store = InMemoryVectorStore(embeddings)
特征分析:
    • InMemoryVectorStore:沉质级内乱存背质数据库
      • 长处:整设置、快速本型开辟• 缺点:沉开后数据丧失,分歧适消耗情况
    • 消耗替换计划:from langchain_co妹妹unity.vectorstores import Chroma
    vector_store = Chroma.from_documents(docs, embeddings)
3. 狂言语模子散成

3.1 DeepSeek 适配设置

llm = ChatOpenAI(
    api_key="sk-xxxxx",
    base_url="https://api.deepseek.com/v1",
    model="deepseek-chat"
)
枢纽设置项:
参数分析留神事变
api_keyDeepSeek API 稀钥应从情况变质读与,制止软编码
base_urlAPI 端面必需包罗 /v1 路子
model模子标记deepseek-chat 为对于话劣化版原

宁静倡议:
import os
llm = ChatOpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com/v1"
)4. 对于话链建立

4.1 提醒词汇模板

prompt = ChatPromptTemplate.from_template("{input}")
模板体系退阶用法:
from langchain_core.prompts import (
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate
)

prompt = ChatPromptTemplate.from_messages([
    SystemMessagePromptTemplate.from_template("您是一个{role}"),
    HumanMessagePromptTemplate.from_template("{input}")
])4.2 链式拉拢

chain = prompt | llm
管讲操纵符 (|) 的等效完毕:
from langchain_core.runnables import RunnableSequence
chain = RunnableSequence(first=prompt, last=llm)
扩大链示例(戴影象):
from langchain_core.runnables import RunnablePassthrough

memory = ConversationBufferMemory()
chain = (
    RunnablePassthrough.assign(
        history=memory.load_memory_variables
    )
    | prompt
    | llm
)5. 流式输出处置

5.1 流式挪用

for chunk in chain.stream({"input": "AI编程帮忙"}):
    print(chunk.content, end="", flush=True)
手艺细节:
    • chunk 工具构造:class AIMessageChunk:
        content: str
        additional_kwargs: dict• 收集劣化:使用 Server-Sent Events (SSE) 和谈• 提早比照:流式 vs 非流式
    情势尾字节时间合用场景
    流式200-500ms及时接互
    批处置1-2s数据阐发

6. 消耗情况倡议

6.1功用 劣化

llm = ChatOpenAI(
    ...,
    max_retries=3,
    timeout=30.0,
    streaming=True
)6.2 监控散成

from langsmith import Client

client = Client()
client.create_feedback(
    run_id="...",
    key="accuracy",
    score=0.9
)6.3 毛病处置

from tenacity import (
    retry,
    stop_after_attempt,
    wait_exponential
)

@retry(
    stop=stop_after_attempt(3),
    wait=wait_exponential(multiplier=1, min=4, max=10)
)
def safe_invoke(input_text):
    return chain.invoke({"input": input_text})
颠末上面实质完毕了根底的Python挪用介绍

LangChain + DeepSeek 齐过程开辟详解w3.jpg
·················END·················



对于AI东西

Github启源文原转语音神器Spark-TTS启源了,克隆声音仅需3秒?

github启源B站UP主皆正在用的下载神器!Cobalt让您轻快搬运下浑艳材!

Github 26k Stars 启源换脸神器

Github 启源无代码的 Web 数据提炼仄台,2分钟内乱锻炼机械人主动抓与网页数据

逐日革新,等候取您共同生长

欢送围不雅副业常识星球

您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )