Postman-OpenAI集成工具

一个强大的Python应用程序,将Postman API集合与OpenAI集成,通过编排顺序API调用来回答用户查询。该系统利用AI理解自然语言查询并自动确定调用哪些API以及调用顺序。

  • by aakankshamourya
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aakankshamourya/Postman-Collection-with-MCP-OPENAI

使用说明

Postman与OpenAI的集成

一个强大的Python应用程序,它将Postman API集合与OpenAI集成,通过协调顺序API调用来回答用户查询。该系统利用人工智能来理解自然语言查询,并自动确定要调用哪些API以及调用顺序。

特点/特性

  • 🔄 旋转符号(表示循环、重复或刷新) 自动API编排使用OpenAI分析查询并确定要调用的API
  • 📋(清单/待办事项列表) Postman集合解析器自动解析Postman集合JSON文件
  • 🔗(此符号在中文中无直接对应含义,通常表示链接或连接) 顺序API调用以正确的顺序执行多个API调用
  • 🤖 机器人 自然语言处理理解人类查询并将它们映射到API操作
  • ⚙️ 通常用来表示齿轮或机械装置的符号,在中文中可以翻译为“齿轮”或“机械装置”。 可配置的带有环境变量的灵活配置系统
  • 📊 表格/数据图表 全面日志记录详细的日志记录和响应追踪
  • 🚀 表情符号“🚀”在中文中通常被直接保留为表情符号,不直接翻译为文字,但可以解释为“火箭”或“飞速前进”的意象。所以,这个表情可以理解为“🚀 火箭”或“🚀 飞速前进”。 异步支持使用asyncio构建,以实现高性能

安装

  1. 克隆或下载项目文件

  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 设置您的OpenAI API密钥:

    export OPENAI_API_KEY="your-openai-api-key"
    
  4. 导出您的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"
}

它是如何工作的

  1. 集合解析系统解析您的Postman集合JSON,以提取所有API端点、其方法、URL、头部和描述。

  2. 查询分析当你提出问题时,OpenAI会分析该问题以及可用的API端点,以确定应该调用哪些API以及调用的顺序。

  3. API编排该系统按顺序向已识别的API发出HTTP请求,处理身份验证、头部信息和请求体。

  4. 响应合成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 collection

API响应格式

@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响应与模式的匹配性

故障排除

常见问题

  1. 未找到API端点

    • 确保您的Postman集合以v2.1格式导出
    • 检查集合中是否包含实际的API请求(而不仅仅是文件夹)
  2. 未找到OpenAI API密钥

    • 设定 OPENAI_API_KEY 环境变量
    • 或者更新 openai_api_key 在你的配置文件中
  3. “未找到集合文件”

    • 确保您的Postman集合路径正确
    • 检查文件权限
  4. API调用失败

    • 验证API端点是否可访问
    • 检查认证头和令牌
    • 确保网络连接

调试模式

启用调试日志以获取详细信息:

export LOG_LEVEL=DEBUG
python main.py

贡献

  1. 克隆该仓库
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

许可证

这个项目是开源的,并且遵循MIT许可证发布。

支持

对于问题和疑问:

  1. 查看故障排除部分
  2. 查看日志以获取错误详情
  3. 创建一个问题,详细描述您的设置及错误信息

未来的改进/增强功能

  • 支持API响应缓存
  • [ ] 自动API依赖检测
  • [ ] 网页界面,便于交互
  • [ ] 对WebSocket API的支持
  • API响应验证
  • [ ] 高级身份验证处理
  • [ ] 速率限制和流量控制
  • API性能监控