智能助手网
标签聚合 抛砖引玉

/tag/抛砖引玉

linux.do · 2026-04-18 23:40:19+08:00 · tech

我的其他提示词作品: 抛砖引玉:开源一个已经为我带来收益的写作提示词 - 开发调优 / 开发调优, Lv1 - LINUX DO 众所周知,随着opus 4.7发布,世界上又多了一个不说人话的模型。 而在被无数次不逃、不避、稳稳的接住之后,世界上还多了一个被伤透的文字爱好者。 claude的早期训练数据中包含大量小说、诗歌等文学作品,可以说,最早的claude就是全世界文学水平最高、“最懂人话”的模型。 与当年的claude合作进行文学创作、玩角色扮演,是我使用AI以来最美好的体验之一。然而,说漂亮话挣不到钱,所以A÷开始在后天训练上向代码倾斜,最终把自家模型变成了这幅鬼样子。 尽管如此,模型的底子还在。所以,我想要唤醒这种底层能力。 在全世界AI都开始倾向不说人话的时代,我决定发起一场反叛——反其道而行之,让AI挑战世界上最困难的文学体裁——诗歌,甚至是古诗。 GPT不说人话的历史由来已久,而除了claude,以“活人感”著称的还有谷歌家的gemini。 作为对比,我们可以先看看gemini在无额外约束下,输出的是什么东西: 输入: 请根据以下输入写一首现代诗: 经济寒冬,父亲丢了工作,我本科毕业,对自己的前路陷入迷茫。清明时节,我们怀着困顿而窘迫的心情返乡祭祖,回到老屋,奶奶就那样笑着,在一片苍翠中等着我,给了我一种莫名的震撼——自然并不在乎人类的命运,只是依照自己的时令运行。而可悲又可怜的是,困在水泥鸽子笼里的人类却连欣赏这些的闲暇都不曾有过——世界上最原初的美好,被丢给了人类社会最边缘的群体 输出: gemini-3.1-pro-preview: 城市是一座巨大的水泥鸽笼 我们在其中,退化了飞翔的本能 父亲的工牌,在经济的寒风中坠落 我的学位证,是一张通向迷雾的废纸 ……(以下省略,实在太垃圾了) gemini-2.5-pro: 车窗分割两个世界 一边是下沉的账单,父亲鬓角的霜 和一张,我那像过期船票的文凭 我们是沉默的铁盒,载着各自的锈 奔赴一场贫穷的葬礼 …… 我们,这些水泥鸽子笼里的囚徒 用一生去交换屏幕上跳动的数字 却从未被告知 世界上最奢侈的美好 ——这不问世事的绿,这无边无涯的寂静 原来早已被丢弃 成了一份,只留给边缘人的 赠礼 我相信有文学审美的佬友都能看出来,2.5比3.1写的东西强不少,这跟我在claude多代模型上的测试结果基本一致—— 在文学审美和中文创意写作领域,这两家模型基本都是越更越垃圾 我说越古越强是对的有没有人懂的 那么,通过设计合适的提示词,有没有可能进行纠正呢? 理论上可以,但实操很难。 正如我之前的帖子里说过的: 在另一个话题中 文学创作是一项开放性、创造性的任务,必须为AI的发散,甚至是“幻觉”留下驰骋的疆域。但最让人头疼的是,写作这件事又不是彻底、完全的信马由缰,搞创作也有基本法 而诗歌涉及的留白、意蕴、炼字等要求,相比起一般写文,难度又上了一个阶梯。 到底要怎么跟AI表达那些诗歌创作中“只可意会,不可言传”的部分?我思考了很久,始终没有想出一个合适的答案。 好在,这件事在最近有了眉目——我从几篇文章中获得了灵感,开始琢磨一套全新的创作理论框架。 提示词还在迭代中,没有完成,但可以让各位佬友看看调试过程跑出来的结果: (相同的输入) gemini-3.1-pro-preview: 高架桥呕出两具发硬的肉身, 顺着四月的冷雨, 直直沉入祖先的坟垄。 坟头上,野草暴动, 而她,陷在脱落的碑前, 无牙的嘴向两端裂开, 一口含住了满山的雷鸣。 我们将器官浇灌进楼板, 把自己焊死在七十平米的盲区。 却看大地把最奢靡的浪潮, 当做废弃的边角料, 随手,倒进奶奶漏风的牙床前。 gemini-2.5-pro: 铁锈,以简历的格式, 为我写好了墓志铭。 城市的齿轮停转, 吐出一枚返乡的我,和失业的父亲。 清明雨,是一种垂直的叹息, 只打湿沉默的肩胛。 父亲把报废的零件运回故里, 而我,把一个空白的未来,藏进袖底。 老屋在青山中下沉, 被苔藓温柔地接管。 奶奶的笑,是院角那根破土的春笋, 她不知道什么是经济寒冬, 她只知道,风,每年都来解冻南山。 原来,一个失灵的人间, 不过是,给野蕨和孤坟, 腾出的一寸,春天。 至于claude,放个金句给各位感受下: 写文凭贬值: 我的文凭四折 轻于纸钱 简直翻天覆地,强到爆炸 限于篇幅,其他内容就不一一展示了,最后以一篇精彩的内容收尾: 输入: 历经数年沉浮,我的努力终于被世人看到了。 今天是我上台领奖的日子,但我躲在幕后,却只能想起像老鼠一样躲在阴暗出租屋里埋头工作的日子——身旁从未有人理解过我,他们并不理解,意气风发的名校毕业生,为什么要专门选一条难走的路。今日,他们站在台下祝贺我的成功——他们眼里也只有我的成功。在那些市侩的笑容中,我感到一种彻骨的孤独。 gemini-3.1-pro-preview: 《极昼的鼠》 万吨雷鸣砸塌了丝绒大幕, 白昼的铁水泼向台前。 我向阴影退后半寸, 跌回两平米的霉绿里。 高定西装包裹着经年的鼠皮, 满堂的唇齿翻起海啸。 他们痛饮这杯新酿的黄金, 无人咽下我嚼碎的十万个黑夜。 红毯笔直,切断了退路, 锦缎织不进下水道的暗风。 聚光灯将影子死死钉在台上—— 司仪递来沸腾的烈火, 我伸手, 接住满把的大雪。 gemini-2.5-pro: 《鼠锈》 万千灯火,烧开一座海。 而我捧起, 冰凉的浇头。 山呼凿穿了骨头, 风在空洞里走。 他们看见奖杯,我看见锈。 那是世界赠我的山峰, 用以堆放, 所有孤独的回声。 完整提示词预计本月底出炉,敬请期待 2 个帖子 - 2 位参与者 阅读完整话题

linux.do · 2026-04-18 12:03:11+08:00 · tech

昨天,在群里小伙伴的提醒下,我了解到通过反代 Codex 也可以进行图片的生成和编辑了。随即我进行了一番实验,使用 GPT-Image-1.5 成功生成了如下图片: 技术原理:工具调用(Tool Calling) 与 Gemini 使用专用图片模型(如 NanoBanana 系列)的逻辑不同,在 Codex 中,生图功能是通过 调用工具 实现的,并不依赖特定的模型名称。 基于这一特性,我们可以利用 CLIProxyAPI 的 模型别名 配合 Payload 重写 功能,自定义一套专属的“文生图模型”。下面我分享一下自己的配置思路和使用方法,希望能起到抛砖引玉的作用。 PS:下文前提是已经安装配置好 CLIProxyAPI 并添加了 Codex 的 OAuth 凭证。 1. 配置文件修改 在 CLIProxyAPI 的配置文件中添加以下内容。这里我们将 gpt-5.4-mini 映射为不同分辨率的生图模型,并通过 Payload 强制开启 image_generation 工具。 oauth-model-alias: codex: - name: gpt-5.4-mini alias: gpt-image-1024x1024 fork: true - name: gpt-5.4-mini alias: gpt-image-1024x1536 fork: true - name: gpt-5.4-mini alias: gpt-image-1536x1024 fork: true payload: override-raw: - models: - name: gpt-image-1024x1024 protocol: codex params: tools: '[{"type":"image_generation", "size": "1024x1024", "quality": "high", "background": "auto"}]' tool_choice: '{"type": "image_generation"}' - models: - name: gpt-image-1024x1536 protocol: codex params: tools: '[{"type":"image_generation", "size": "1024x1536", "quality": "high", "background": "auto"}]' tool_choice: '{"type": "image_generation"}' - models: - name: gpt-image-1536x1024 protocol: codex params: tools: '[{"type":"image_generation", "size": "1536x1024", "quality": "high", "background": "auto"}]' tool_choice: '{"type": "image_generation"}' 添加完成后,我们就可以直接调用 gpt-image-1024x1024 、 gpt-image-1024x1536 和 gpt-image-1536x1024 这三个自定义模型了。 2. 快速调用脚本 (PowerShell) 由于目前我还未找到好用的生图客户端,我编写了一个简单的 Windows PowerShell 脚本供大家参考。 使用方法: 修改脚本前四行的 apiUrl 、 apiKey 等参数。 将完整脚本粘贴至 PowerShell 窗口运行。 等待约数十秒,即可在当前运行路径下看到生成的图片。 $apiUrl = "https://你的CLIProxyAPI地址/v1/responses" $apiKey = "你的CLIProxyAPI的apikey" $model = "gpt-image-1536x1024" $text = "画一张赛博朋克的香港,要有汉字" $bodyObject = @{ model = $model instructions = "You are a helpful assistant." input = @( @{ type = "message" role = "user" content = @( @{ type = "input_text" text = $text } ) } ) parallel_tool_calls = $true reasoning = @{ effort = "high" summary = "auto" } stream = $true store = $false include = @( "reasoning.encrypted_content" ) } $body = $bodyObject | ConvertTo-Json -Depth 100 -Compress $outBase = "generated" $utf8NoBom = New-Object System.Text.UTF8Encoding($false) $tempBodyFile = Join-Path $env:TEMP ("response-body-" + [guid]::NewGuid().ToString("N") + ".json") [System.IO.File]::WriteAllText($tempBodyFile, $body, $utf8NoBom) try { curl.exe --silent --show-error --no-buffer ` -X POST $apiUrl ` -H "Content-Type: application/json" ` -H "Authorization: Bearer $apiKey" ` --data-binary ("@" + $tempBodyFile) | ForEach-Object -Begin { $eventType = $null $dataLines = [System.Collections.Generic.List[string]]::new() function Save-Bytes { param([string]$Path, [string]$Base64) [System.IO.File]::WriteAllBytes($Path, [Convert]::FromBase64String($Base64)) Write-Host "Saved $Path" } function Save-ImageGenerationCallResult { param([object]$ImageCall) if (-not $ImageCall) { return } if ($ImageCall.type -ne "image_generation_call") { return } if (-not $ImageCall.result) { return } $ext = if ($ImageCall.output_format) { [string]$ImageCall.output_format } else { "png" } $path = Join-Path (Get-Location) "$outBase.$ext" Save-Bytes -Path $path -Base64 ([string]$ImageCall.result) } function ConvertFrom-JsonCompat { param([string]$Json) if ($PSVersionTable.PSVersion.Major -ge 6) { return $Json | ConvertFrom-Json -Depth 100 } return $Json | ConvertFrom-Json } function Flush-SseEvent { param([string]$Type, [System.Collections.Generic.List[string]]$DataLines) if (-not $Type -or $DataLines.Count -eq 0) { return } $json = ($DataLines -join "`n").Trim() if (-not $json -or $json -eq "[DONE]") { return } try { $obj = ConvertFrom-JsonCompat -Json $json } catch { return } switch ($Type) { "response.output_item.done" { Save-ImageGenerationCallResult -ImageCall $obj.item } "response.completed" { $imageCall = @( $obj.response.output | Where-Object { $_.type -eq "image_generation_call" -and $_.result } ) | Select-Object -First 1 Save-ImageGenerationCallResult -ImageCall $imageCall } } } } -Process { $line = [string]$_ if ($line.StartsWith("event:")) { if ($eventType -or $dataLines.Count -gt 0) { Flush-SseEvent -Type $eventType -DataLines $dataLines $dataLines = [System.Collections.Generic.List[string]]::new() } $eventType = $line.Substring(6).Trim() return } if ($line.StartsWith("data:")) { $dataLines.Add($line.Substring(5).TrimStart()) return } if ([string]::IsNullOrWhiteSpace($line)) { Flush-SseEvent -Type $eventType -DataLines $dataLines $eventType = $null $dataLines = [System.Collections.Generic.List[string]]::new() } } -End { Flush-SseEvent -Type $eventType -DataLines $dataLines } } finally { if (Test-Path -LiteralPath $tempBodyFile) { Remove-Item -LiteralPath $tempBodyFile -Force } } 相关资源 如需了解更详细的参数调整可以参考 OpenAI 官方文档 5 个帖子 - 4 位参与者 阅读完整话题