V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  brader  ›  全部回复第 120 页 / 共 153 页
回复总数  3046
1 ... 116  117  118  119  120  121  122  123  124  125 ... 153  
2023-03-27 15:46:17 +08:00
回复了 brader 创建的主题 程序员 固态价格真的烂大街了
@zddwj 我一向都是能用就行,大神整战斗机的,哈哈,比不了
2023-03-27 15:42:16 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@Dorian101 重装完系统还是正版吗
2023-03-27 15:39:58 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@sypopo 哈哈哈,笑死,我开始以为他意思是东西有问题,你一说我才 get 到他的点,是用完就退,行啊你小子
2023-03-27 15:30:41 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@zhouS9 嗯嗯,听过这个的大名,DG 应该也行
2023-03-27 15:29:56 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@qianxaingmoli 我另一台台式本身有系统在的,没必要 PE 了吧,直接开机就能用到 DG 啊
2023-03-27 15:24:20 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@leloext 放心,稳得很,我和妹子保证没问题的,有问题把我赔给她,稳赚不赔
2023-03-27 15:23:12 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@K8dcnPEZ6V8b8Z6 可以选择分享下你这个悲伤的故事,让大家开心下
2023-03-27 15:22:24 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@leloext 那正好,我记得我台式主板有 4 个 sata3 接口
2023-03-27 15:16:18 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@Rever4433 文件和软件麻烦,也能搞搞,主要有个问题不清楚,原来笔记本系统是正版的,我固态自己装个系统,是不是就不算正版的了?
2023-03-27 15:11:01 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@leloext 现在有这个想法,家里有台式,对了,笔记本硬盘接到台式可以吗?会有电压或电流过大的问题吗?对硬件不是特别了解
2023-03-27 15:01:37 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@user100saysth 这个我也想过,就是我手上没有硬盘盒子,还得去买
2023-03-27 15:01:01 +08:00
回复了 brader 创建的主题 程序员 笔记本换固态怎么迁移系统比较快
@opengps 工具我不缺,知道很多,就是物理连接像我上面说的,流程有点麻烦,感觉做了重复工作
2023-03-27 12:28:05 +08:00
回复了 brader 创建的主题 程序员 固态价格真的烂大街了
@lyxeno 这种老古董笔记本算了吧,升级用用得了,主要还算偶尔才开机用下的
2023-03-27 12:27:18 +08:00
回复了 brader 创建的主题 程序员 固态价格真的烂大街了
@tcpdump 是自营的,牌子都京东自己搞得,网上好多人说他贴牌,哈哈
2023-03-27 12:26:48 +08:00
回复了 brader 创建的主题 程序员 固态价格真的烂大街了
@wummyu 就是看整体的一个评价啊,因为新东西,看遇到坑的人多不多,像我以前买西数和金士顿,我就感觉还算靠谱
2023-03-27 12:26:02 +08:00
回复了 brader 创建的主题 程序员 固态价格真的烂大街了
@collinmehle 这个价位上下的,我看了金士顿和西数,也是没得缓存的吧
@uplee 起初我也想用这个包,很遗憾,作为一个工具,它对旧项目不那么友好,PHP 7.4+的要求让我望而却步,我仅需要使用到 chatgpt 的几个 API 而已,而且他的 API 非常易接入,就自己实现了
抱歉,上面的代码格式无法保持,大家自己粘贴了格式化。在 V2EX 回复我不清楚如何使用 md 语法,这每次让我很苦恼
有几个建议仅供参考:
一、看了你 demo 站,没有逐字输出效果,初步怀疑是你没有关闭 nginx 缓冲区造成的。
二、你的 messages 没有复传完整的上下文对话数组,导致 chatgpt 失去了连续对话能力。
三、你虽然实现了 EventSource 消息的解析,但解析代码和传输数据强耦合在了一起,EventSource 有其标准的数据格式,可参考文献 https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events

下面是我在项目实际应用中使用 Guzzle 包简单实现的一个方法封装 demo ,它不是完整的代码,有部分初始化工作在其他地方,仅供参考:
```
/**
* 创建聊天(以流的形式直接输出)
*
* @param array $messages 内容 [{"role":"user","content":"你好"},{"role":"assistant","content":"你好!我是 AI 助手,请问你有什么需要帮助的吗?"},{"role":"user","content":"怎么称呼你"}]
*/
public function createChatCompletionStream($messages = [])
{
if (empty($messages)) {
exit();
}

try {
$response = $this->guzzle->request("POST", '/v1/chat/completions', [
'json' => [
'model' => 'gpt-3.5-turbo',
'messages' => $messages,
'stream' => true,
],
'stream' => true,
]);

$body = $response->getBody();
$buffer = '';
while (!$body->eof()) {
$buffer .= $body->read(128);
// 这里使用 while 是因为读取 n 个字节有可能同时读出 n 条 EventSource 消息
while (($pos = strpos($buffer, "\n\n")) !== false) {
$msg = substr($buffer, 0, $pos); // 一条 event 消息
$buffer = substr($buffer, $pos + 2); // 去除已被解析的部分

if (substr($msg, 0, 6) === 'data: ') { // 只解析了 data ,实际的 EventSource 还有 event 、id 、retry
$obj = json_decode(substr($msg, 6));
if (isset($obj->choices[0]->delta->content)) {
echo $obj->choices[0]->delta->content;
ob_flush();
flush();
}
}
}
}
exit();

} catch (GuzzleException $e) {
Log::error($e->getMessage());
return response('请求失败,请稍后重试', 500);
}
}
```
2023-03-20 15:26:40 +08:00
回复了 leeraya 创建的主题 Go 编程语言 请教下 Go 目前主流的 web 和微服务框架是啥?
@liuxu 好,我学习下,正好我刚开始可以从简单的项目源码看起
1 ... 116  117  118  119  120  121  122  123  124  125 ... 153  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6285 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 02:31 · PVG 10:31 · LAX 18:31 · JFK 21:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.