🖇️如何将自托管LLM接入langchain?
type
status
date
slug
summary
tags
category
icon
password
有很多企业的实际生产场景里,对数据的私有化要求比较高,不可以将数据拿去与闭源的LLM API交互,那么企业这个时候的最佳选择就是使用GPU服务来自行搭建,那么搭建好后,一般会有一个可以自己使用的API,如何将其接入langchain生态,实现方便的调用呢?
需要注意
- 并不是接入到langchain就可以使用所有的API,一切要取决于包装的API完整度以及LLM的能力
- 比如你部署好LLM,开发的warp程序来包装接口,只做了invoke的调用,那么其他的类似stream的接口一样是不可用的
- 又比如你部署的LLM本身并没有做类似tool call的微调,那么即使你再warp里增加了tool call的逻辑,也是无法使用的
首先部署好LLM
保证你的LLM使用API是可以访问的,比如你使用羊驼3 70B,通过类似LM studio来快速部署后,就会生成一个服务端API,现在假设我们已经有一个API地址:
注意:本教程不包括模型部署,如果你想了解如何部署大模型,请参考其他教程!
包装一个invoke接口:
代码整体比较简单,做了如下几个事:
- 继承BaseChatModel类来构造一个自己的LLM warp类
- 定义默认的传入指,这里主要是model name以及服务API地址
- 创建_generate方法,该方法是BaseChatModel中默认的invoke调用接口,这里相当于复写
- 在其中增加了request的调用,并将结果以langchain的格式返回
这里只演示了一个接口的构造,如果想增加类似steam的方法,可以参考:
Loading...