LangChain的交互进程往往比较复杂,假如想深化了解其交互进程,咱们能够经过python的debug才能来调试,但是debug调试往往功率比较低,或许还会打断正常的逻辑流转。最近在查看LangChain的文档时发现其本身提供了Tracing才能。本文将简略总结下怎么建立LangChain的可视化环境。

环境建立

  1. 装置langchain库
> pip install langchain
> pip install langchain -U //更新
  1. 发动服务,履行如下命令
> langchain-server
  1. 登录页面

可视化LangChain调用链

  1. 创立一个自己的session,假如不装备就使用默许的session

遇到的问题

  • 直接使用上面langchain-server会报错,比如
toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

分析源码发现其实是使用了docker-compose来运转3个服务

def main() -> None:
    """Run the langchain server locally."""
    p = Path(__file__).absolute().parent / "docker-compose.yaml"
    if shutil.which("docker-compose") is None:
        docker_compose_command = ["docker", "compose"]
    else:
        docker_compose_command = ["docker-compose"]
    subprocess.run([*docker_compose_command, "-f", str(p), "pull"])
    subprocess.run([*docker_compose_command, "-f", str(p), "up"])
if __name__ == "__main__":
    main()

使用的docker-compose.yaml如下:

version: '3'
services:
  langchain-frontend:
    image: notlangchain/langchainplus-frontend:latest
    ports:
      - 4173:4173
    environment:
      - BACKEND_URL=http://langchain-backend:8000
      - PUBLIC_BASE_URL=http://localhost:8000
      - PUBLIC_DEV_MODE=true
    depends_on:
      - langchain-backend
  langchain-backend:
    image: notlangchain/langchainplus:latest
    environment:
      - PORT=8000
      - LANGCHAIN_ENV=local
    ports:
      - 8000:8000
    depends_on:
      - langchain-db
  langchain-db:
    image: postgres:14.1
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=postgres
    ports:
      - 5432:5432

问题:

  • 不需要每次都pull镜像,能够直接使用已拉取的镜像
  • 使用的postgres:14.1在本地或许跑不起来,可修改成其他版本,比如postgres:14-alpine

设置环境变量

在代码履行入口处加上以下代码:

import os
os.environ["LANGCHAIN_HANDLER"] = "langchain"
# 上报的tracing数据信息,默许是localhost:8000
os.environ["LANGCHAIN_ENDPOINT"] = "http://{your_host}:{your_port}"
# 上面创立的session
os.environ["LANGCHAIN_SESSION"] = "openai"

作用查看

  • 大局作用:
    可视化LangChain调用链

类似于全链路追寻的作用

  • 展开作用:

    可视化LangChain调用链

  • 后台上报记录

可视化LangChain调用链

总结

经过上述方式,咱们能够比较方便的跟踪LangChain整个交互流程了,包含跟LLM模型的交互进程。能够帮助咱们更容易研讨其内部运作流程。

参阅

Locally Hosted Setup

Tracing