langchain_deepseek 进行LangSmith 评估

LangSmith 评估系统

LangSmith 提供了一套全面的评估系统,帮助开发者评估和优化他们的 LLM 应用。以下是 LangSmith 评估系统的关键组成部分:

评估类型

LangSmith 支持多种评估方式,满足不同的需求:

  1. 模型评估 (Model-based Evaluation)

    • 使用 LLM 作为评判者评估应用的输出
    • 支持各种评估维度,如回答准确性、相关性、有害性等
    • 可配置不同的评估模型(如 GPT-4、Claude、Gemini 等)
  2. 规则评估 (Rules-based Evaluation)

    • 基于预定义的规则自动评估输出
    • 支持正则表达式匹配、字符串比较等方法
    • 适用于需要确保输出符合特定格式或标准的场景
  3. 人工评估 (Human Evaluation)

    • 提供界面让人类评估者审查和评分输出
    • 支持自定义评分标准和反馈表单
    • 适合主观评估和复杂质量判断
  4. 自定义评估函数 (Custom Evaluators)

    • 允许开发者编写自己的评估逻辑
    • 可以结合外部工具和资源进行评估
    • 灵活适应特定领域的评估需求

评估指标

LangSmith 支持多种评估指标:

  1. 准确性 (Correctness)

    • 评估输出的事实准确性
    • 可以通过参考答案比较或模型判断
  2. 相关性 (Relevance)

    • 评估输出与输入查询的相关程度
    • 确保回答直接解决用户问题
  3. 一致性 (Consistency)

    • 评估多次运行的输出一致性
    • 检测随机性和不确定性
  4. 有害性 (Harmfulness)

    • 检测输出中的有害、不适当或违规内容
    • 确保安全合规
  5. 自定义指标

    • 基于特定应用需求的定制评估标准
    • 可以组合多个基本指标

langchain_deepseek 评估

这段代码是一个使用LangSmith和DeepSeek模型的自然语言处理应用程序。我将详细解释其主要组成部分:

导入和初始化部分

from langchain_deepseek import ChatDeepSeek
from dotenv import load_dotenv
import os
from langsmith import traceable
from langsmith import Client
from langsmith import wrappers
import datetime

这部分导入了必要的库,包括DeepSeek模型接口、环境变量加载工具、LangSmith客户端等。

DeepSeek模型初始化

llm_deepseek = ChatDeepSeek(
    api_key= os.getenv("DEEPSEEK_API_KEY"),
    api_base=os.getenv("DEEPSEEK_API_BASE"),
    model=os.getenv("DEEPSEEK_MODEL"),
    temperature=0,
    max_tokens=None,
    timeout=120,
    max_retries=5,
    default_headers={
   
   "Connection": "keep-alive"}
)

初始化DeepSeek大语言模型,从环境变量中获取API密钥、基础URL和模型名称。temperature设为0表示生成确定性回答。

LangSmith客户端初始化和数据集创建

try:
    client = Client()
    
    # 创建数据集 - 使用时间戳创建唯一名称
    current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
    dataset_name = f"DeepSeek示例数据集_{
     
     current_time}"
    
    try:
        dataset = client.create_dataset(
            dataset_name=dataset_name, 
            description="使用DeepSeek模型的示例数据集"
        )
        # ... [创建示例数据]
    except Exception as e:
        # ... [错误处理]
except Exception as e:
    # ... [客户端初始化失败处理]

初始化LangSmith客户端,创建带时间戳的唯一数据集,添加示例问答对。包含完善的错误处理逻辑。

目标函数定义

def target(inputs: dict) -> dict:
    response = wrapped_deepseek.invoke(
        [
            {
   
   "role": "system", "content": "请准确回答以下问题"},
            {
   
   "role": "user", "content": inputs["question"
### LangChain OpenAI 与 LangChain DeepSeek 的功能差异 在开发基于大语言模型的应用时,LangChain 提供了多种接口来集成不同的模型服务提供商。以下是 LangChain OpenAI 和 LangChain DeepSeek 的主要功能差异: #### 1. 模型支持 - **LangChain OpenAI** 支持 OpenAI 提供的所有模型,包括 GPT 系列(如 gpt-3.5-turbo、gpt-4 等)。这些模型以其强大的泛化能力和广泛的训练数据而闻名[^2]。 - **LangChain DeepSeek** 支持 DeepSeek 提供的模型,例如 deepseek-v3 和 deepseek-chat。DeepSeek 模型通常以高性能和低成本为特点,适合特定任务或预算有限的场景[^1]。 #### 2. API 调用方式 - **LangChain OpenAI** 使用 `ChatOpenAI` 类进行实例化,并通过 `invoke` 方法调用模型。它依赖 OpenAI 的官方 API,需要提供 API Key 和可选的其他参数(如温度、最大令牌数等)[^2]。 - **LangChain DeepSeek** 使用 `BaseChatOpenAI` 类进行实例化,同样需要提供 API Key 和 Base URL。DeepSeek 的 API 调用方式与 OpenAI 类似,但其 Base URL 和模型名称有所不同[^1]。 #### 3. 配置灵活性 - **LangChain OpenAI** 提供了更丰富的配置选项,例如支持流式输出(streaming)、回调函数(callbacks)以及详细的日志记录。这些功能有助于开发者更好地调试和优化模型性能[^2]。 - **LangChain DeepSeek** 的配置选项相对较少,但在基本功能上与 OpenAI 保持一致。对于大多数应用场景,DeepSeek 的配置已足够满足需求[^1]。 #### 4. 成本与性能 - **LangChain OpenAI** 的成本较高,尤其是使用 GPT-4 等高端模型时。然而,其性能和稳定性在业界处于领先地位[^2]。 - **LangChain DeepSeek** 提供更具性价比的选择,尤其适合中小型企业或个人开发者。虽然性能可能略逊于 OpenAI 模型,但在许多任务中仍表现出色[^1]。 #### 5. 社区支持与文档 - **LangChain OpenAI** 拥有庞大的用户社区和完善的官方文档,遇到问题时更容易找到解决方案[^2]。 - **LangChain DeepSeek** 的社区规模较小,文档相对简略。不过,随着 DeepSeek 的快速发展,相关资源正在逐步丰富。 ```python # LangChain OpenAI 示例 from langchain_openai import ChatOpenAI import os llm = ChatOpenAI(api_key=os.getenv("OPENAI_API_KEY"), model="gpt-3.5-turbo") response = llm.invoke("什么是大模型?") print(response.content) # LangChain DeepSeek 示例 from langchain_deepseek import BaseChatOpenAI import os model = BaseChatOpenAI( model="deepseek-chat", temperature=0, openai_api_key=os.getenv("DEEPSEEK_API_KEY"), openai_api_base='https://api.deepseek.com/v1' ) response = model.invoke("什么是大模型?") print(response.content) ``` #### 总结 LangChain OpenAI 和 LangChain DeepSeek 各有优劣。如果追求高性能和广泛支持,OpenAI 是更好的选择;如果注重成本效益,DeepSeek 则更为合适。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Agent首席体验官

您的打赏是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值