侧边栏壁纸
  • 累计撰写 16 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Langchain学习笔记(一)- 集成deepseek

NewBoy
2025-03-18 / 0 评论 / 0 点赞 / 19 阅读 / 0 字

LangChain 第一课:基础入门

1. LangChain简介

LangChain 是一个用于构建基于语言模型的应用的框架。它允许开发者将不同的组件(如模型、提示、记忆等)组合在一起,创建复杂的应用。

2. 安装与配置

首先,我们需要安装 LangChain。你可以使用 pip 来安装:

pip install langchain

我们使用deepseek作为LLM服务,因此还需要安装langchain的deepseek组件。

pip install -U langchain-deepseek

有两种方式可以设置ds的API_KEY:

  • export DEEPSEEK_API_KEY="your-api-key"
  • 在.env中设置:DEEPSEEK_API_KEY="your-api-key",我们采用第二种
    安装完成后,确保你的 Python 环境已经配置好,并且可以正常使用。

因为考虑到后续可能会对接多个LLM服务商,因此将LLM设计成工厂模式,负责生成Langchain的llm实例。
下面代码演示如何将deepseek集成到Langchain中,其他的LLM厂商的请参考相关的文档。

LLM工厂类代码:

"""
llm_factory.py 用于创建 LLM 实例
"""

import os
import dotenv

dotenv.load_dotenv()


class LLMFactory:
    """LLM 工厂类,用于创建不同类型的 LLM 实例"""

    @staticmethod
    def create_llm(llm_type: str = "deepseek", **kwargs):
        """
        创建 LLM 实例

        Args:
            llm_type (str): LLM 类型,目前支持 "deepseek"
            **kwargs: 传递给 LLM 的额外参数

        Returns:
            ChatDeepSeek: LLM 实例

        Raises:
            ValueError: 如果传入不支持的 llm_type
        """
        if not os.getenv("DEEPSEEK_API_KEY"):
            raise ValueError("请先设置 DEEPSEEK_API_KEY 环境变量")

        if llm_type == "deepseek":
            from langchain_deepseek import ChatDeepSeek

            return ChatDeepSeek(
                model="deepseek-chat",
                temperature=kwargs.get("temperature", 0.7),
                max_tokens=kwargs.get("max_tokens", 100),
            )
        else:
            raise ValueError(f"不支持的 LLM 类型: {llm_type}")

3. 基本组件

  • Chains:Chains 是 LangChain 中的核心概念,它允许你将多个步骤组合在一起,形成一个完整的流程,可以理解为工厂中的生产线。
  • Prompts:Prompts 是用于生成模型输入的模板,你可以通过设计不同的 Prompt 来控制模型的输出。同openai等大多数的提示词模板相似,提供两种类似的提示词:
    • system:全局的提示词,主要修饰用户输入的提示词的前置内容,例如”设定身份、背景、目标“等内容
    • human:用户输入的提示词
  • Models:Models 是 LangChain 中使用的语言模型,如 GPT-3、GPT-4 等。
  • Memory:Memory 用于存储和管理对话的历史记录,以便在后续的对话中使用。

4. 简单应用

让我们从一个简单的问答系统开始。我们将使用 LangChain 的 LLMChain 来创建一个简单的问答系统。

主程序代码:

"""
lesson_1.py 使用 LangChain 的 LLMChain 进行翻译
"""

from util.llm_factory import LLMFactory

llm = LLMFactory.create_llm(llm_type="deepseek")

# 创建提示模板
#1. 生成所需要的LLM对象,这里是用deepseek。
from langchain_core.prompts import ChatPromptTemplate

# 2. 设置提示词模板,分为system和human两个层级的提示词。
prompt = ChatPromptTemplate(
    [
        (
            "system",
            "You are a helpful assistant that translates Chinese to English. Translate the user sentence.",
        ),
        ("human", "{input}"),
    ]
)

# 3. 接收用户的输入内容,并套用提示词模板
input = input("请输入要翻译的中文内容:")
print(f"正在翻译:{input}")
messages = prompt.format_messages(input=input)

# 4. 调用llm模型
response = llm.invoke(messages)
print(response.content)

执行结果:


python code/part-1/lesson_1.py
请输入要翻译的中文内容:我喜欢研究人工智能技术
正在翻译:我喜欢研究人工智能技术
I enjoy researching artificial intelligence technology.
0

评论区