omarsabbagh/php-openai-structured
Composer 安装命令:
composer require omarsabbagh/php-openai-structured
包简介
A PHP package for easily working with OpenAI's structured output feature
README 文档
README
A PHP package for easily working with OpenAI's structured output feature. This package provides a simple and intuitive way to define JSON schemas for OpenAI API calls and process the structured responses.
Features
- Simple client for making OpenAI API calls with structured output
- Fluent interface for building JSON schemas
- Pre-built schema types for common use cases
- Type-safe PHP classes with proper documentation
Installation
Install via Composer:
composer require omarsabbagh/php-openai-structured
Basic Usage
<?php require 'vendor/autoload.php'; use Omarsabbagh\PhpOpenaiStructured\Client; use Omarsabbagh\PhpOpenaiStructured\Schema\CategorizationSchema; // Create a client with your API key $client = new Client('your-openai-api-key'); // Create a categorization schema $schema = new CategorizationSchema('contact_categorization', ['Real', 'Fake']); // Define the system prompt $systemPrompt = " You are an AI model trained to categorize contact information into 'Real' or 'Fake'. Analyze the given JSON-structured contact details and classify them accordingly. "; // Input data to categorize $input = [ "first_name" => "John", "last_name" => "Smith", "email" => "jsmith@example.com" ]; // Get the categorization result $result = $client->completeWithSchema($schema, $systemPrompt, $input); // Use the structured result echo "Category: " . $result['category'] . "\n"; echo "Reason: " . $result['reason'] . "\n";
Building Custom Schemas
You can build custom schemas for more complex use cases:
<?php use Omarsabbagh\PhpOpenaiStructured\Schema\ObjectSchema; // Create a custom schema $schema = new ObjectSchema('entity_extraction'); // Add properties to the schema $schema->addArrayProperty( 'people', [ 'type' => 'object', 'properties' => [ 'name' => ['type' => 'string', 'description' => 'Full name'], 'role' => ['type' => 'string', 'description' => 'Role or occupation'], ], 'required' => ['name'] ], 'List of people mentioned in the text', true ); // Add more properties as needed...
Available Schema Types
CategorizationSchema
For categorizing input into predefined categories:
$schema = new CategorizationSchema('name', ['Category1', 'Category2']);
ObjectSchema
For creating custom object schemas:
$schema = new ObjectSchema('name'); $schema->addProperty('property', 'string', 'Description', true); $schema->addEnumProperty('status', ['active', 'inactive'], 'Status description', true); $schema->setAdditionalProperties(false);
Creating Your Own Schema Types
You can create your own schema types by extending the BaseSchema class:
class MyCustomSchema extends BaseSchema { protected function getSchemaDefinition(): array { return [ 'type' => 'object', 'properties' => [ // Your custom properties here ], 'required' => ['property1', 'property2'], 'additionalProperties' => false ]; } }
Examples
Check the examples directory for more examples of how to use this package:
examples/categorization.php- Basic categorization exampleexamples/custom_schema.php- Custom schema for entity extraction
Development
Running Tests
This package includes a comprehensive test suite. To run the tests:
composer install vendor/bin/phpunit
The test suite includes:
- Unit Tests: Tests for individual components
- Integration Tests: Tests for components working together
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Requirements
- PHP 8.1 or higher
- OpenAI API key
- Composer for dependency management
License
MIT License
Further Reading
omarsabbagh/php-openai-structured 适用场景与选型建议
omarsabbagh/php-openai-structured 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 465 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 03 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「JSON Schema」 「openai」 「structured output」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 omarsabbagh/php-openai-structured 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 omarsabbagh/php-openai-structured 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 omarsabbagh/php-openai-structured 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Kinikit - PHP Application development framework MVC component
Extension for Opis JSON Schema
EAV modeling package for Eloquent and Laravel.
serialize Symfony Forms into JSON schema
ext-json wrapper with sane defaults
A package to cast json fields, each sub-keys is castable
统计信息
- 总下载量: 465
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-12