Modal
模态云平台提供了方便的按需访问本地计算机上的Python脚本的无服务器云计算。使用modal
来运行自己的自定义LLM模型,而不是依赖LLM API。
这个示例介绍了如何使用LangChain与modal
HTTPS web endpoint进行交互。
使用LangChain进行问答是另一个使用LangChain与Modal
一起使用的示例。在该示例中,Modal将LangChain应用端到端运行,并使用OpenAI作为其LLM API。
pip install modal
# 使用Modal注册一个帐户并获取一个新的令牌。
modal token new
在您的浏览器窗口中启动登录页面...
如果没有显示,请将此URL手动复制到您的Web浏览器中:
https://modal.com/token-flow/tf-Dzm3Y01234mqmm1234Vcu3
langchain.llms.modal.Modal
集成类要求您部署一个符合以下JSON接口的Modal应用程序的Web端点:
- LLM提示作为
str
值在键"prompt"
下接受 - LLM响应作为
str
值在键"prompt"
下返回
示例请求JSON:
{
"prompt": "Identify yourself, bot!",
"extra": "args are allowed",
}
示例响应JSON:
{
"prompt": "This is the LLM speaking",
}
一个满足此接口的示例“虚拟”Modal Web端点函数可以是
...
...
class Request(BaseModel):
prompt: str
@stub.function()
@modal.web_endpoint(method="POST")
def web(request: Request):
_ = request # 忽略输入
return {"prompt": "hello world"}
- 请参阅Modal的Web端点指南,了解设置符合此接口的端点的基础知识。
- 请参阅Modal的'使用AutoGPTQ运行Falcon-40B'开源LLM示例,作为自定义LLM的起点!
一旦您部署了Modal Web端点,就可以将其URL传递给langchain.llms.modal.Modal
LLM类。然后,该类可以作为您链中的一个构建模块。
from langchain.llms import Modal
from langchain import PromptTemplate, LLMChain
template = """问题:{question}
答案:让我们逐步思考。"""
prompt = PromptTemplate(template=template, input_variables=["question"])
endpoint_url = "https://ecorp--custom-llm-endpoint.modal.run" # 用您部署的Modal Web端点的URL替换我
llm = Modal(endpoint_url=endpoint_url)
llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "贾斯汀·比伯出生的那一年,哪支NFL球队赢得了超级碗?"
llm_chain.run(question)