langserve--1--fastapi接口示例

本地使用ollama部署的deepseek-r1:1.5b模型

from fastapi import FastAPI
from fastapi.responses import Response
from langserve import add_routes
from langchain.prompts import ChatPromptTemplate
from langchain_community.chat_models import ChatOllama
from pydantic import BaseModel


app = FastAPI(
    title="My LangServer",
    version="0.1.0",
    description="暴露 LangChain 链为 REST API",
    debug=True
)


class JokeInput(BaseModel):
    topic: str


chat_model = ChatOllama(
    model="deepseek-r1:1.5b",
    base_url="http://localhost:11434",
    temperature=0
)
prompt = ChatPromptTemplate.from_template("讲一个关于{topic}的笑话")
joke_chain = prompt | chat_model


add_routes(
    app,
    joke_chain,
    path="/joke",
    input_type=JokeInput
)


@app.get("/hello")
async def hello():
    return Response("hello, world")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

在这里插入图片描述

### 自定义 Agent 工具的方法 在 LangChain 0.3.0 版本中,自定义 Agent 工具涉及多个方面,包括配置方法、API 使用说明以及具体的示例代码。 #### 配置方法 为了创建自定义的 Agent 工具,在初始化过程中需遵循特定结构。由于 `LLMChain` 类已被弃用并将在后续版本移除[^1],推荐使用 `RunnableSequence` 来替代原有的链式调用方式。这意味着开发者应采用新的接口来设计集成自定义工具到 Agent 中。 对于自定义工具的具体实现,通常需要继承基础类并重写相应的方法以适应具体需求。例如,在服务端的知识库模块(`server/knowledge_base/kb_service`)中有抽象方法 `do_create_kb()` 的定义,这表明任何想要扩展此功能的新类都必须提供自己的实现逻辑[^3]。 #### API 使用说明 当涉及到与外部系统的交互时,如 Google Search API 账号注册,确保正确设置环境变量或配置文件中的认证信息至关重要。这些凭证用于授权访问第三方资源,并可能作为参数传递给自定义工具实例。 此外,考虑到项目的整体架构——即通过 LangChain 进行开发构建、LangSmith 实现生产化/跟踪、LangServe 提供 API 支持——理解各个组件之间的协作机制同样重要[^2]。特别是如果计划将自定义工具部署为 RESTful Web Service,则熟悉 FastAPI 或 Flask 等微框架会很有帮助。 #### 示例代码 下面是一个简单的 Python 函数片段,展示了如何基于上述指导原则编写一个名为 `CustomTool` 的自定义工具: ```python from typing import Any, Dict import requests class CustomTool: def __init__(self, api_key: str): self.api_key = api_key def run_query(self, query: str) -> Dict[str, Any]: url = "https://api.example.com/search" params = {"q": query} headers = { 'Authorization': f'Bearer {self.api_key}' } response = requests.get(url=url, params=params, headers=headers) data = response.json() return data['results'] ``` 这段代码假设存在一个支持 JSON 响式的搜索 API 接口,并且可以通过 HTTP GET 请求获取查询结果。实际应用中应当替换真实的 URL 处理返回的数据格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值