在本地部署完dify后Dify使用deepseek,我们发现启动了10个容器,我们先从这10个容器的功能开始探索dify的源码
有读者看完langchain-go的分析后在评论区提议分析下eino的源码。这里就简单分析下它。
为了解决m个编辑器n种编程语言造成的编译器代码需要mxn套的问题,将笛卡尔积改为和即m+n套,微软推出了pls(Programming Lan...
在internal/lsprpc/lsprpc.go中有Forwarder的实现
初始化完转发代理,我们看看json-rpc服务提供能力是如何实现的
介绍完rpc方式实现后我们看看stdio方式的实现,首先是初始化Stream
初始化完StreamServer后我们看看它是如何基于标准输入输出提供服务的。首先调用了golang.org/x/tools/internal/...
研究完mainCommands 的Serve命令后,我们看下剩下的其他命令 首先是version,用来输出版本信息
介绍完mainCommands,下面看看internalCommands,它只有一个命令:漏洞检测
最后我们来到了第三部分featureCommands,也是所有命令的大头,这里一共初始化了23个命令。我们首先看下第一个callHierarch...
分析完一个featureCommands后,其他的22个都是类似的。它们的作用是将编辑器对源码的操作接口进行标准化,它的核心接口如下:
整体看来,你可以把它和proto生成的pb文件对应,即根据lsp协议生成的json-rpc的定义文件。
在分析完client的实现后,我们继续看看server端的实现,首先我们定义下结构体
随着LLM引用的大火,json-rpc 2.0协议应用越来越广泛,它使用JSON (JavaScript Object Notation) 来编...
在分析完server端的源码实现后,我们分析下client端的源码实现,首先还是具体实现一个client:
提到go语言的rpc大家习惯性和grpc-go画等号,其实不然,golang语言包里提供了自己的rpc实现,即net/rpc,下面我们通过例子分...
GoConvey是一个完全兼容官方Go Test的测试框架,一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高.Convey定...
LangGraph 是一款基于图结构的工作流编排框架,专为构建复杂多Agent协作系统而设计,支持循环流程、状态持久化和动态任务编排,广泛应用...
LangSmith 是 LangChain 官方推出的 LLM 应用全生命周期开发平台,专注于开发、协作、测试、部署和监控基于大型语言模型的...
前面介绍了gomonkey和goconvey两个测试工具,字节在它俩基础上封装了一个更直观的工具:github.com/bytedance/mo...