🚀 Community-Driven PHP Client for DeepSeek AI API Integration
- ✨ Features
- 📦 Installation
- 🚀 Quick Start
- 🆕 Migration Guide
- 📝 Changelog
- 🧪 Testing
- 🔒 Security
- 🤝 Contributors
- 📄 License
- Seamless API Integration: PHP-first interface for DeepSeek's AI capabilities.
- Fluent Builder Pattern: Chainable methods for intuitive request building.
- Enterprise Ready: PSR-18 compliant HTTP client integration.
- Model Flexibility: Support for multiple DeepSeek models (Coder, Chat, etc.).
- Streaming Ready: Built-in support for real-time response handling.
- Many Http Clients: easy to use
Guzzle http client(default) , orsymfony http client. - Framework Friendly: Laravel & Symfony packages available.
Require the package via Composer:
composer require deepseek-php/deepseek-php-clientRequirements:
- PHP 8.1+
Get started with just two lines of code:
use DeepSeek\DeepSeekClient; $response = DeepSeekClient::build('your-api-key') ->query('Explain quantum computing in simple terms') ->run(); echo $response;📌 Defaults used:
- Model:
deepseek-chat - Temperature: 0.8
use DeepSeek\DeepSeekClient; use DeepSeek\Enums\Models; $client = DeepSeekClient::build(apiKey:'your-api-key', baseUrl:'https://api.deepseek.com/v3', timeout:30, clientType:'guzzle'); $response = $client ->withModel(Models::CODER->value) ->withStream() ->setTemperature(1.2) ->setMaxTokens(8192) ->setResponseFormat('text') // or "json_object" with careful . ->query('Explain quantum computing in simple terms') ->run(); echo 'API Response:'.$response;When using:
->setResponseFormat('json_object')Your prompt must contain the word "json" in some form. Otherwise, the API will reject the request with the following error:
"Prompt must contain the word 'json' in some form to use 'response_format' of type 'json_object'"
->setResponseFormat('json_object') ->query('Explain quantum computing in simple terms')->setResponseFormat('json_object') ->query('Respond in valid JSON format. Explain quantum computing in simple terms.')✅ Tip: For best results, also provide a JSON example or explicitly say: "Respond only in valid JSON."
the package already built with symfony Http client, if you need to use package with symfony Http Client , it is easy to achieve that, just pass clientType:'symfony' with build function.
ex with symfony:
// with defaults baseUrl and timeout $client = DeepSeekClient::build('your-api-key', clientType:'symfony') // with customization $client = DeepSeekClient::build(apiKey:'your-api-key', baseUrl:'https://api.deepseek.com/v3', timeout:30, clientType:'symfony'); $client->query('Explain quantum computing in simple terms') ->run();use DeepSeek\DeepSeekClient; $response = DeepSeekClient::build('your-api-key') ->getModelsList() ->run(); echo $response; // {"object":"list","data":[{"id":"deepseek-chat","object":"model","owned_by":"deepseek"},{"id":"deepseek-reasoner","object":"model","owned_by":"deepseek"}]}Function Calling allows the model to call external tools to enhance its capabilities.[1]
You Can check the documentation for function calling in FUNCTION-CALLING.md
Upgrading from v1.x? Check our comprehensive Migration Guide for breaking changes and upgrade instructions.
Detailed release notes available in CHANGELOG.md
./vendor/bin/pestTest coverage coming in v2.1.
Click the button bellow or join here to be part of our growing community!
- 🗨️ General - Daily chatter
- 💡 Ideas & Suggestions - Shape the community's future
- 📢 Announcements & News - Official updates & news
- 🚀 Releases & Updates - Version tracking & migration support
- 🐞 Issues & Bug Reports - Collective problem-solving
- 🤝 Pull Requests - Code collaboration & reviews
Report Vulnerabilities: to omaralwi2010@gmail.com
A huge thank you to these amazing people who have contributed to this project! 🎉💖
| Omar AlAlwi 🏆 Creator | Ayman Alhattami ⭐ Contributor | Mohammad Asaad ⭐ Contributor | Opada Alzaiede ⭐ Contributor | Hisham Bin Ateya ⭐ Contributor | Vinchan ⭐ Contributor |
Want to contribute? Check out the contributing guidelines and submit a pull request! 🚀
This package is open-source software licensed under the MIT License.