tourze / open-ai-bundle
DeepSeek API integration for Symfony
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.1
- ext-mbstring: *
- doctrine/collections: ^2.3
- doctrine/dbal: ^4.0
- doctrine/doctrine-bundle: ^2.13
- doctrine/orm: ^3.0
- doctrine/persistence: ^3.1 || ^4
- easycorp/easyadmin-bundle: ^4
- knplabs/knp-menu: ^3.7
- psr/log: ^3|^2|^1
- symfony/config: ^6.4
- symfony/console: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/doctrine-bridge: ^6.4
- symfony/form: ^6.4
- symfony/framework-bundle: ^6.4
- symfony/http-client: ^6.4
- symfony/http-client-contracts: ^2.5 | ^3.0
- symfony/http-foundation: ^6.4
- symfony/http-kernel: ^6.4
- symfony/routing: ^6.4
- symfony/serializer: ^6.4
- symfony/uid: ^6.4
- symfony/yaml: ^6.4 || ^7.1
- tourze/bundle-dependency: 0.0.*
- tourze/doctrine-entity-markdown-bundle: 0.0.*
- tourze/doctrine-indexed-bundle: 0.0.*
- tourze/doctrine-random-bundle: 0.1.*
- tourze/doctrine-snowflake-bundle: 0.1.*
- tourze/doctrine-timestamp-bundle: 0.0.*
- tourze/doctrine-track-bundle: 0.1.*
- tourze/doctrine-user-bundle: 0.0.*
- tourze/easy-admin-attribute: 0.1.*
- tourze/easy-admin-menu-bundle: 0.1.*
- tourze/enum-extra: 0.1.*
- yiisoft/json: ^1.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-06-03 15:35:17 UTC
README
OpenAIBundle 是一个用于与 DeepSeek API 交互的 Symfony Bundle。它提供了一套完整的工具,用于进行 AI 对话、代码生成等任务。
功能特性
- 支持多种 DeepSeek 模型(deepseek-coder、deepseek-chat、deepseek-math、deepseek-chinese)
- 流式响应,实时输出 AI 回复
- 支持对话历史记录
- 支持系统提示词设置
- 提供命令行工具进行交互
配置
-
在数据库中创建
deepseek_config
表,包含以下字段:id
: 配置IDbase_url
: DeepSeek API 基础URLapi_key
: DeepSeek API 密钥
-
添加配置记录:
INSERT INTO deepseek_config (base_url, api_key) VALUES ('https://api.deepseek.com', 'your-api-key');
使用方法
命令行工具
- 基本使用:
php bin/console deepseek:reason "你的问题" -c 1
- 交互模式:
php bin/console deepseek:reason -i -c 1
- 设置系统提示词:
php bin/console deepseek:reason -s "你是一个专业的PHP开发者" -c 1
- 选择模型:
php bin/console deepseek:reason -m deepseek-chat -c 1
在代码中使用
use OpenAIBundle\Service\OpenAiService; use OpenAIBundle\Repository\ApiKeyRepository; class YourService { public function __construct( private readonly OpenAiService $deepSeekService, private readonly ApiKeyRepository $configRepository ) { } public function chat(): void { $config = $this->configRepository->find(1); $messages = [ ['role' => 'system', 'content' => '你是一个专业的PHP开发者'], ['role' => 'user', 'content' => '如何使用 Symfony 创建自定义命令?'] ]; foreach ($this->deepSeekService->streamReasoner( $config, $messages, ['model' => 'deepseek-chat'] ) as $chunk) { if ($chunk instanceof StreamChunkVO) { echo $chunk->getContent(); } } } }
异常处理
Bundle 定义了以下异常类:
DeepSeekException
: 基础异常类ConfigurationException
: 配置相关异常ModelException
: 模型相关异常
建议在使用时捕获这些异常并适当处理:
try { $result = $this->deepSeekService->streamReasoner(...); } catch (ConfigurationException $e) { // 处理配置错误 } catch (ModelException $e) { // 处理模型错误 } catch (DeepSeekException $e) { // 处理其他错误 }
贡献
欢迎提交 Issue 和 Pull Request。
许可证
MIT