跳转到主要内容

记录和回放ASGI网页加载

项目描述

asgi-replay

PyPI Changelog Tests License

用于使用ASGI记录和回放请求的工具。

非常早期的原型

这是一个早期原型。我只使用过这个工具一次。

安装

pip install asgi-replay

用法

该工具提供两个命令 - 一个用于记录ASGI请求的日志,另一个用于运行服务器回放它们。

记录

asgi-replay record https://www.example.com log.json --port 8000

这将在端口8000上运行本地服务器,将内容代理到www.example.com - 并将每个请求记录到log.json中。

log.json文件将每次请求时被覆盖。这个工具主要是为了捕获单个HTTP交互。

如果您添加--increment,则将为每个请求写入一个新的文件,从log-0.json开始,然后是log-1.json等。

回放

要回放单个日志 - 使得对本地服务器的任何HTTP请求都会回放确切的响应 - 运行以下命令

asgi-replay replay log.json --port 8000

(8000是两个命令的默认端口。)

我为什么要构建这个

我想构建一个可以模拟OpenAI完成端点流式响应的小型应用程序。

我构建的应用程序在这里:https://github.com/simonw/openai-canned-completion

您可以使用LLM像这样访问它

OPENAI_API_KEY='x' \
OPENAI_API_BASE='https://openai-canned-completion.vercel.app/v1' \
llm 'hello'

我首先在我的机器上运行以下命令

asgi-replay record https://api.openai.com log.json --port 8000

然后

OPENAI_API_BASE='https://#:8000/v1' \
llm 'hello'

这运行了对OpenAI的实际请求,并将响应保存在log.json中。

然后我像这样运行回放

asgi-replay record https://api.openai.com log.json --port 8000

然后当我再次运行llm命令时,我得到了相同的响应,而没有调用OpenAI API

OPENAI_API_BASE='https://#:8000/v1' \
llm 'hello'
Hello! How can I assist you today?

我将保存的ASGI日志复制到这个ASGI应用程序中:https://github.com/simonw/openai-canned-completion/blob/main/canned.py

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

asgi-replay-0.1a0.tar.gz (3.2 kB 查看哈希值)

上传时间: 源代码

构建分布

asgi_replay-0.1a0-py3-none-any.whl (3.5 kB 查看哈希值)

上传时间: Python 3

由以下支持