LangChain的交互进程往往比较复杂,假如想深化了解其交互进程,咱们能够经过python的debug
才能来调试,但是debug
调试往往功率比较低,或许还会打断正常的逻辑流转。最近在查看LangChain的文档时发现其本身提供了Tracing才能。本文将简略总结下怎么建立LangChain的可视化环境。
环境建立
- 装置langchain库
> pip install langchain
> pip install langchain -U //更新
- 发动服务,履行如下命令
> langchain-server
- 登录页面
- 创立一个自己的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整个交互流程了,包含跟LLM模型的交互进程。能够帮助咱们更容易研讨其内部运作流程。
参阅
Locally Hosted Setup
Tracing