V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  brader  ›  全部回复第 106 页 / 共 138 页
回复总数  2754
1 ... 102  103  104  105  106  107  108  109  110  111 ... 138  
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 好,我学习下,正好我刚开始可以从简单的项目源码看起
2023-03-20 15:10:14 +08:00
回复了 leeraya 创建的主题 Go 编程语言 请教下 Go 目前主流的 web 和微服务框架是啥?
@dog82 兄弟们,请教一下,我一直在用其他语言,都是习惯 MVC 模式的开发,然后自学了一下 GO ,主要看了 beego 和 gin ,我用起来,感觉 beego 比较符合自己的习惯,转过去也相对轻松。我有些 GO 朋友,就说 gin 比较好用,但是我尝试玩了一下,可以用,但是我觉得让我自己把项目结构、代码,合理的组织起来,感觉很难,无从下手,就给我感觉 gin 好像对新手不怎么友好,看官方文档也没有任何推荐如何组织目录结构,我大概也不可能像他们 demo 那样,在 main.go 随意写吧
2023-03-20 11:47:43 +08:00
回复了 brader 创建的主题 Android 现在安卓还有没有纯净点的小说阅读器吗
@rainsounds 非常感谢您,我下载后试用了,非常喜欢这个软件,感觉这是我理想的看书软件,它的主题沉浸式体验和软件默认打开后支持直接进入上次阅读页,都是我非常喜欢的功能,意外之喜
2023-03-20 11:19:07 +08:00
回复了 brader 创建的主题 Android 现在安卓还有没有纯净点的小说阅读器吗
@Urukiora 这个没有上市场吧
2023-03-20 11:18:56 +08:00
回复了 brader 创建的主题 Android 现在安卓还有没有纯净点的小说阅读器吗
@zcf0508 我的荣耀手机默认给我装了一个,也是叫阅读的,我不知道是不是和你说的同一个,天天给我弹屏,缩到后台,一会再打开,都得弹一次
2023-03-17 18:17:46 +08:00
回复了 brader 创建的主题 程序员 QQ Linux 版居然更新了
@drdre 那版出很 low 的之后,我就没关注了
@shellus 客户端是无法实现的我说的效果的,因为流形式 gpt 回答问题是持续性逐字回答。
因为开启了缓冲区,假设一段话被分为了 A 、B 、C 三块进行输出,那么客户端接收数据流程如下:

客户端等待 -> 客户端接收 A 块消息(这里按你说的,客户端自实现逐字输出) -> 等待 -> 接收 B 块消息 -> 等待 -> 接收 c 块消息

你会发现上面的流程,虽然你接收到一整块的大量文字的时候,自己做了逐字输出,但因为服务端必须等待接收满一个缓冲区的数据,才会向客户端发送数据,所以客户端在每一块数据之间,又进入了等待期,失去了连续性。
2023-03-17 17:15:35 +08:00
回复了 brader 创建的主题 程序员 微信语音对游戏延迟的影响
@dode 手机微信,我那 40 块的水星路由器应该没这么高级,可能都没这个功能
我建议你关闭缓冲区或者调整缓冲区的大小,它会让你 UI 表现看起来是逐字出现而不是一段一段的出现,表现更加丝滑,体验会更加友好。
缓冲区可能存在于列举任何一个地方:代码、中间代理服务、nginx 等等
2023-03-17 14:12:16 +08:00
回复了 fbichijing 创建的主题 程序员 京东金条 注销
另外告诉你们一个京东白条很恶心的地方,给大家闭坑。我以前白条授信额度差不多 2 万,有次在京东买东西 500 多用了白条,后面也还清了,然后有一次我查征信,显示我在 XXX 公司有笔小额贷款 2 万多,状态未结清,我吓一跳,以为有人冒充我贷款,后来多方查找,才知道这个公司是京东白条的。
他们这个行为贱在哪里呢,其实他们给我授信 2 万额度,但 2 万没有全部给到我手上,我只用了 500 ,而且还还清了,相当于他们借我的名义,他们贷出了 2 万自己公司挪用。我用过其他的信用产品,都不会像白条这样,都是欠多少,征信就显示多少。

后面气的我打白条客服投诉,注销了白条,过后查征信,才显示结清。
2023-03-16 11:26:15 +08:00
回复了 brader 创建的主题 程序员 兄弟们,命令行版 ChatGPT 有搞头吗?
@silypie 啊,有吗,没见到啊,推个链接瞧瞧
不管是你们内部、还是外部和客户沟通,做软件,修改、迭代这个事情是正常的,首先我们从心理上不要去抵触。你应该反对的是那种只想修改,不愿意延后工期,客户不想加钱的行为。

流程的正规化、法律风险的规避、证据的合法化,这点我真佩服外企,以前我们接过外企的一个项目,我们公司的销售和产品和外企对接人沟通,外企几乎都要求你发邮件过来,他们需要改什么东西,也很自觉发邮件过来,即使不得已需要电话沟通,事后也会叮嘱你记得发个邮件过来确认,还有他们会安排每周多天天的例行沟通会议,几乎从不逾越时间。我们这边临近 5 点有什么需要他们技术配合改东西(他们 5 点半下班),到下班时间点,他们就走了,除非必要,他们不会同意在下班时间配合你做什么,都是说明天。 有计划性必须配合的,一般要提前通知他们准备,他们会安排配合
2023-03-16 10:17:28 +08:00
回复了 unt 创建的主题 程序员 oh my zsh SSH 连接到主机后,所有效果就都没了
@unt 乱七八糟的就真别玩,还是用知名的,我基本只用 xshell 、MobaXterm
1 ... 102  103  104  105  106  107  108  109  110  111 ... 138  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   967 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 20:44 · PVG 04:44 · LAX 13:44 · JFK 16:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.