LLMER必会技能:一行代码将任意python函数部署成http服务

72 阅读2分钟

LLMER必会技能:一行代码将任意python函数部署成http服务

LLMER: 一个化繁为简的大模型(LLM)应用开发者神器

llmer 是一个轻量级的 Python 库,旨在简化大型语言模型(LLMs)应用中的复杂过程。它提供了用于并行处理、运行时管理、文件处理和Prompt格式化等常用的高级 API 和实用工具,从而不用每次都需要重复开发相关代码,简化工作。

更多关于LLMER工具的详细功能,阅读原文

Notice: LLMER增加新功能,任意python函数,只需一行代码即可部署成FastAPI服务

一行代码帮你搞定 FastAPI 服务部署

LLMER 工具包 @deploy(host, port) 装饰器能快速便捷将任意函数部署成FastAPI服务。

安装LLMER

pip install llmer

使用举例:

在任意函数前加上装饰器@deploy(host=, port=),即可立即部署成FastAPI服务。

然后可通过 <函数名>.serve() 启动服务。

目前支持普通函数、异步函数、流式函数(生成器)、异步流式函数(异步生成器)

from llmer.server import deploy
import time
import asyncio

# 普通服务
@deploy(host="127.0.0.1", port=9510)
def add(a: int, b: int):
    return a + b
# add.serve()

# 异步服务
@deploy(host="127.0.0.1", port=9510)
async def async_add(a: int, b: int):
    return a + b
# async_add.serve()

# 流式服务
@deploy(host="127.0.0.1", port=9511)
def stream_numbers(start: int, end: int):
    for i in range(start, end + 1):
        time.sleep(1)
        yield f'{{"number": {i}}}'
# stream_numbers.serve()

# 异步流式服务
@deploy(host="127.0.0.1", port=9511)
async def async_stream_numbers(start: int, end: int):
    for i in range(start, end + 1):
        await asyncio.sleep(1)
        yield {"number": i}
# async_stream_numbers.serve()

以最后一个异步流式服务为例,通过 async_stream_numbers.serve() 启动后

INFO:     Started server process [26081]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:9511 (Press CTRL+C to quit)

调用举例

curl -X POST "http://127.0.0.1:9511/async_stream_numbers" \
    -H "Content-Type: application/json" \
    -d '{"start": 1, "end": 5}'

流式输出

data: {'number': 1}
data: {'number': 2}
data: {'number': 3}
data: {'number': 4}
data: {'number': 5}

更多关于LLMER工具的详细功能,快来阅读原文