Postman与OpenAI的集成
一个强大的Python应用程序,它将Postman API集合与OpenAI集成,通过协调顺序API调用来回答用户查询。该系统利用人工智能来理解自然语言查询,并自动确定要调用哪些API以及调用顺序。
特点/特性
- 🔄 旋转符号(表示循环、重复或刷新) 自动API编排使用OpenAI分析查询并确定要调用的API
- 📋(清单/待办事项列表) Postman集合解析器自动解析Postman集合JSON文件
- 🔗(此符号在中文中无直接对应含义,通常表示链接或连接) 顺序API调用以正确的顺序执行多个API调用
- 🤖 机器人 自然语言处理理解人类查询并将它们映射到API操作
- ⚙️ 通常用来表示齿轮或机械装置的符号,在中文中可以翻译为“齿轮”或“机械装置”。 可配置的带有环境变量的灵活配置系统
- 📊 表格/数据图表 全面日志记录详细的日志记录和响应追踪
- 🚀 表情符号“🚀”在中文中通常被直接保留为表情符号,不直接翻译为文字,但可以解释为“火箭”或“飞速前进”的意象。所以,这个表情可以理解为“🚀 火箭”或“🚀 飞速前进”。 异步支持使用asyncio构建,以实现高性能
安装
- 克隆或下载项目文件
- 安装依赖项:
pip install -r requirements.txt- 设置您的OpenAI API密钥:
export OPENAI_API_KEY="your-openai-api-key"- 导出您的Postman集合:
- 打开Postman并导航到您的集合 - 点击收藏名称旁边的三个点(...) - 选择“导出” - 选择格式v2.1并保存为 postman_collection.json
快速入门
方法1:使用环境变量
# Set your OpenAI API key
export OPENAI_API_KEY="your-openai-api-key"
# Set path to your Postman collection
export POSTMAN_COLLECTION_PATH="path/to/your/collection.json"
# Run the application
python main.py方法2:使用配置文件
# Create default configuration
python -c "from config import create_default_config_file; create_default_config_file()"
# Edit config.json with your settings
# Then run:
python example_usage.py使用示例
基本用法
import asyncio
from main import PostmanOpenAIIntegration
async def main():
# Initialize the integration
integration = PostmanOpenAIIntegration(
openai_api_key="your-openai-api-key",
collection_path="postman_collection.json"
)
# Initialize with your collection
await integration.initialize()
# Process a query
response = await integration.process_query("Get all users from the system")
print(f"Success: {response.success}")
print(f"Message: {response.message}")
print(f"APIs Called: {response.api_calls_made}")
asyncio.run(main())交互模式
python example_usage.py这将启动一个交互式会话,在其中您可以:
- 输入自然语言查询
- 查看调用了哪些API
- 查看详细回复
- 列出可用的终端节点
配置
该系统支持通过环境变量或JSON文件进行配置:
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENAI_API_KEY 您的OpenAI API密钥 | 必填 | |
OPENAI_MODEL | 要使用的OpenAI模型 | gpt-3.5-turbo |
POSTMAN_COLLECTION_PATH | Postman 收集文件的路径 | 必填 |
REQUEST_TIMEOUT API请求超时时间(秒) 30 | ||
MAX_RETRIES | 最大重试次数 | 3 |
LOG_LEVEL | 日志级别 | INFO |
配置文件
创建一个 config.json 文件:
{
"openai_api_key": "your-openai-api-key",
"openai_model": "gpt-3.5-turbo",
"collection_path": "postman_collection.json",
"request_timeout": 30,
"max_retries": 3,
"delay_between_calls": 0.5,
"log_level": "INFO"
}它是如何工作的
- 集合解析系统解析您的Postman集合JSON,以提取所有API端点、其方法、URL、头部和描述。
- 查询分析当你提出问题时,OpenAI会分析该问题以及可用的API端点,以确定应该调用哪些API以及调用的顺序。
- API编排该系统按顺序向已识别的API发出HTTP请求,处理身份验证、头部信息和请求体。
- 响应合成OpenAI处理API响应,并生成对您原始问题的人类可读答案。
支持的查询类型
该系统能够处理各种类型的查询:
- 数据检索“获取所有用户”,“给我显示最新的订单”
- 数据创建“创建一个新用户,邮箱为test@example.com”
- 数据更新“更新ID为123的用户信息”
- 状态检查“所有服务的状态如何?”
- API发现“有哪些可用的身份验证端点?”
- 复杂的工作流程“注册一个新用户并向他们发送欢迎邮件”
示例查询
# Data retrieval
"Get all users from the system"
"Show me all pending orders"
"What products are available?"
# Data manipulation
"Create a new user with name John Doe and email john@example.com"
"Update the status of order 123 to shipped"
"Delete user with ID 456"
# API exploration
"What APIs are available for user management?"
"Show me all authentication endpoints"
"What CRUD operations are supported?"
# Complex workflows
"Register a new user, create their profile, and send a welcome email"
"Process payment for order 789 and update inventory"文件结构
├── main.py # Main application with integration logic
├── config.py # Configuration management
├── example_usage.py # Usage examples and interactive mode
├── requirements.txt # Python dependencies
├── README.md # This file
├── config.json # Configuration file (created by you)
└── postman_collection.json # Your exported Postman collectionAPI响应格式
@dataclass
class QueryResponse:
success: bool # Whether the operation succeeded
message: str # Human-readable response
data: Optional[Any] # Raw API response data
api_calls_made: List[str] # List of APIs that were called错误处理
该系统包含全面的错误处理机制:
- 集合解析错误无效的JSON或格式错误的集合
- API调用失败网络问题、认证问题、服务器错误
- OpenAI 错误API密钥问题、速率限制、模型错误
- 配置错误设置缺失或无效
记录日志
该应用程序提供了详细的日志记录:
- 信息一般操作信息
- 警告非关键问题(例如,缺少端点描述)
- 错误导致无法运行的关键故障
- 调试详细的调试信息
局限性
- API 依赖项系统不会自动检测API依赖或数据流
- 认证复杂的认证流程可能需要手动配置
- 速率限制尊重API速率限制,但未实现复杂的限流机制
- 数据验证不验证API响应与模式的匹配性
故障排除
常见问题
- 未找到API端点
- 确保您的Postman集合以v2.1格式导出 - 检查集合中是否包含实际的API请求(而不仅仅是文件夹)
- 未找到OpenAI API密钥
- 设定 OPENAI_API_KEY 环境变量 - 或者更新 openai_api_key 在你的配置文件中
- “未找到集合文件”
- 确保您的Postman集合路径正确 - 检查文件权限
- API调用失败
- 验证API端点是否可访问 - 检查认证头和令牌 - 确保网络连接
调试模式
启用调试日志以获取详细信息:
export LOG_LEVEL=DEBUG
python main.py贡献
- 克隆该仓库
- 创建一个特性分支
- 做出你的更改
- 如适用,请添加测试
- 提交拉取请求
许可证
这个项目是开源的,并且遵循MIT许可证发布。
支持
对于问题和疑问:
- 查看故障排除部分
- 查看日志以获取错误详情
- 创建一个问题,详细描述您的设置及错误信息
未来的改进/增强功能
- 支持API响应缓存
- \[ \] 自动API依赖检测
- \[ \] 网页界面,便于交互
- \[ \] 对WebSocket API的支持
- API响应验证
- \[ \] 高级身份验证处理
- \[ \] 速率限制和流量控制
- API性能监控
