让 Laravel AI SDK 支持国内 AI 平台如百炼(千问),火山引擎(豆包),千帆等

代码老兵 技术 8
Laravel 13 首次内置 AI SDK。支持最常用聊天:OpenAIAnthropicGeminiAzureGroqxAIDeepSeekMistralOllama 国内支持 DeepSeek,但像豆包,千问那些不在其中。但因为大多AI都兼容 OpenAI,所以稍微配置下就能支持国内的 百炼,千帆,火山引擎等平台安装 AI SDK 请参考 https://laravel.com/docs/1...

Laravel 回滚 migration

代码老兵 技术 7
1) 回滚最近一次 migration batch命令:php artisan migrate:rollback它会回滚 最后一个 batch,可能包含多个 migration。例如你刚刚执行了:php artisan migrate这次跑了 3 个 migration,那么 rollback 会一次撤销这 3 个。2) 回滚最近 N 个比如最近 5 个:php artisan migrate:r...

Laravel 13 核心新特性

代码老兵 技术 9
Laravel 13 已经在 2026-03-17 正式发布,整体升级体验比 11 → 12 还顺滑,官方重点是:AI 原生能力、Attribute 扩展、更强 API 能力、几乎零破坏性升级。1) 官方 AI SDK(最大新特性)Laravel 13 首次内置 AI SDK。统一支持:Text generationAgent tool callingEmbeddingsAudioImagesVe...

league/commonmark 无法转换 markdown 的 table 语法

代码老兵 技术 18
代码$markConverter = new \League\CommonMark\CommonMarkConverter([ 'html_input' => 'strip', 'allow_unsafe_links' => false, ]); $content = <<<'EOT' | 名字 | 年龄 | 职业 | |------|------|------| |...

cURL error 35: TLS connect error: error:0A000126:SSL routines::unexpected eof while reading

代码老兵 技术 14
用Guzzle抓取网页public function fetch(string $url): string { $client = new Client([ 'headers' => [ 'User-Agent' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', 'Accept'...

PHP 预定义异常及使用场景

代码老兵 技术 20
PHP 里所有可 throw 的对象都属于 Throwable。官方预定义分成两大类:Throwable├── Exception // 业务、逻辑、可预期异常(用户代码逻辑中应该捕获并处理的异常)└── Error // PHP 运行时错误(如语法错误、类型错误)Error 主线这是 PHP 7+ 最重要的预定义异常体Error├── ArithmeticError│ └── DivisionB...

DeepSeek API Temperature 参数的作用

代码老兵 技术 23
Temperature 是控制大模型输出随机性和创造性的核心参数,取值范围通常是 0 到 2(不同模型略有差异)。 核心原理Temperature 影响模型选择下一个词的概率分布:低温度 → 概率分布更"陡峭",模型倾向于选择概率最高的词 → 输出确定性高、保守、可重复高温度 → 概率分布更"平坦",低概率词也有机会被选中 → 输出多样性高、创造性、不可预测可以理解为:Temperature 就像...

IPv6 导致网络卡顿

代码老兵 技术 23
Ubuntu 24 上 composer install 特别慢,甚至要重试几次,服务器在法国,按道理不至于是这个速度。而且在服务器上调用第三方API的时候也经常出现:Connection refused for URI https://xxx先确认是不是 IPv6 导致直接测试:curl -4 https://repo.packagist.org/packages.json -Icurl -6...

rsync 保留目录结构,但不同步目录里的文件

代码老兵 技术 25
最直接写法rsync -av --exclude='dir/*' source/ dest/ 说明dir/* → 排除目录下所有文件但 不会排除 dir/ 目录本身为什么这样写?因为 rsync 的规则是:dir/ → 匹配目录本身dir/* → 匹配目录里的内容 所以:不排除 dir/只排除 dir/*完整示例rsync -av \ --exclude='uploads/*' \ /var/ww...

Do not run Composer as root/super user!

代码老兵 技术 21
当用 root(超级管理员)身份运行 Composer,就会提示:Do not run Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? yesComposer 安装依赖时可能执行第三方 PHP 代码,root 权限风险非常高很多...