liulinnuha/ai-php-sdk

Universal AI SDK for PHP multiple providers like OpenAI, DeepSeek, Gemini, etc.

v0.1.1 2025-08-11 17:29 UTC

This package is auto-updated.

Last update: 2025-08-11 17:29:57 UTC


README

PHP Version PHP Version Latest Version License

A PHP-agnostic SDK for seamless integration with various AI providers including DeepSeek, OpenAI, Gemini, and more. Supporting chat, embedding, moderation features, and provider-specific endpoints.

📋 Table of Contents

✨ Features

  • 🌐 Multi Provider Support

    • Seamless integration with popular AI providers
    • Easy provider switching
    • Unified API interface
  • 💬 Chat API

    • Real-time chat capabilities
    • Stream response support
    • History management
    • Custom message formatting
  • 🔤 Embedding API

    • Text-to-vector conversion
    • Semantic search support
    • Multiple embedding models
    • Vector manipulation utilities
  • 🛡️ Moderation API

    • Content safety checking
    • Multi-language support
    • Customizable threshold
    • Detailed response analysis

🔌 Supported Providers

Provider Status Features
DeepSeek ✅ Active Chat, Embedding
OpenAI ✅ Active Chat, Embedding, Moderation
Gemini ✅ Active Chat

📦 Installation

composer require liulinnuha/ai-php-sdk

⚙️ Configuration

Basic Setup

return [
    'default' => 'deepseek',

    'api_keys' => [
        'deepseek' => 'YOUR_DEEPSEEK_API_KEY',
        'openai'   => 'YOUR_OPENAI_API_KEY',
        'gemini'   => 'YOUR_GEMINI_API_KEY',
    ],

    'models' => [
        'deepseek' => 'deepseek-chat',
        'openai'   => 'gpt-4-mini',
        'gemini'   => 'gemini-pro',
    ],
];

🚀 Usage

Chat API

use AiPhpSdk\Client;
use AiPhpSdk\Support\MessageBuilder;

// Initialize client
$client = new Client($config['default'], [
    'api_key' => $config['api_keys'][$config['default']],
    'model'   => $config['models'][$config['default']],
]);

// Simple chat
$response = $client->chat([
    MessageBuilder::user('Hello, who are you?')
]);

// Chat with history
$response = $client->chat([
    MessageBuilder::system('You are a helpful assistant.'),
    MessageBuilder::user('Hi!'),
    MessageBuilder::assistant('Hello! How can I help you?'),
    MessageBuilder::user('Tell me about AI.'),
]);

Embedding API

// Generate embeddings

$embeddings = $client->embedding('Text to convert to vector');

// Multiple texts
$embeddings = $client->embedding([
    'First text',
    'Second text'
]);

Moderation API

// Check content safety
$result = $client->moderate('Text to check');

❓ FAQ

How to switch providers?

Change the 'default' value in configuration or use setProvider() method:

$client->setProvider('openai');

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request or create an Issue for: Bug fixes Feature requests Documentation improvements Code optimization

📄 License

This package is licensed under the MIT License.