V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ruoxie  ›  全部回复第 12 页 / 共 29 页
回复总数  576
1 ... 8  9  10  11  12  13  14  15  16  17 ... 29  
356 天前
回复了 x77 创建的主题 程序员 邀请懂 TypeScript 的程序员帮忙改代码
这个项目没有用流模式,体验太差了
356 天前
回复了 x77 创建的主题 程序员 邀请懂 TypeScript 的程序员帮忙改代码
代码直接给你了
import * as https from 'https';
import { TextDecoder } from 'util';

export const createChatCompletion = (options: {
host: string;
apiKey: string;
model: string;
text: string;
context?: string;
maxTokens: number;
handleChunk?: (data: { text?: string; hasMore: boolean }) => void;
}) =>
new Promise<string>((resolve, reject) => {
let combinedResult = '';
const request = https.request(
{
hostname: options.host,
port: 443,
path: '/v1/chat/completions',
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${options.apiKey}`,
},
},
(res) => {
res.on('data', async (chunk) => {
const text = new TextDecoder('utf-8').decode(chunk);
const data = text.split('\n\n').filter((s) => s);
for (let i = 0; i < data.length; i++) {
try {
let element = data[i];
if (element.includes('data: ')) {
if (element.trim() === 'data:') {
// 处理只返回了 data: 的情况
return;
}
} else if (element.includes('delta')) {
// 处理没有 data 开头
element = `data: ${element}`;
}
if (element.includes('data: ')) {
if (element.includes('[DONE]')) {
options.handleChunk &&
options.handleChunk({ hasMore: false, text: '' });
return;
}
// remove 'data: '
const data = JSON.parse(element.replace('data: ', ''));
if (data.finish_reason === 'stop') {
options.handleChunk &&
options.handleChunk({ hasMore: false, text: '' });
return;
}
const openaiRes = data.choices[0].delta.content;
if (openaiRes) {
options.handleChunk &&
options.handleChunk({
text: openaiRes.replaceAll('\\n', '\n'),
hasMore: true,
});
combinedResult += openaiRes;
}
} else {
options.handleChunk &&
options.handleChunk({ hasMore: false, text: element });
return;
}
} catch (e) {
console.error({
e,
element: data[i],
});
}
}
});
res.on('error', (e) => {
options.handleChunk &&
options.handleChunk({ hasMore: false, text: e.toString() });
reject(e);
});
res.on('end', () => {
resolve(combinedResult);
});
},
);
const body = {
model: options.model,
messages: [
{
role: 'system',
content: options.context || '',
},
{
role: 'user',
content: options.text,
},
],
stream: true,
max_tokens: options.maxTokens,
};
request.write(JSON.stringify(body));
request.end();
});
360 天前
回复了 cheneydog 创建的主题 问与答 响应式 UI 真的没前途了么?
我宁愿写两套
363 天前
回复了 mgrxwl 创建的主题 生活 农村老家被要求在门口装摄像头。
我爸自己装的,养了 7 、8 头牛
2023-05-17 21:21:52 +08:00
回复了 liangxin1998 创建的主题 问与答 前端除了 crud,写写样式,还能干嘛?
给你 10 个外包,让你指挥他们干活,你怎么保证你的项目不会变成屎山
2023-05-17 21:06:00 +08:00
回复了 duojiao 创建的主题 程序员 这种炫酷的前端是怎么实现的呢
three.js > webgl > 着色器编程
能写出这样效果的人可能并不是一个网页前端,也许是游戏前端
2023-05-16 14:43:20 +08:00
回复了 skoofancy 创建的主题 程序员 HHKB 是不是程序员必备键盘?人手一把?
15 年开始都是用客制化的,刚好今晚要冲一把新的 https://www.zfrontier.com/app/flow/vAjaY7mdGwVN
2023-05-13 17:54:18 +08:00
回复了 exploreunknown18 创建的主题 程序员 求教:有没有好用的低代码页面搭建工具
推荐 aims ,别的都是 kpi 产物
2023-05-11 20:08:48 +08:00
回复了 justin2018 创建的主题 问与答 换键盘 纠结中 HHKB Type-S 和 Realforce R3
2023-05-05 09:37:23 +08:00
回复了 hzzhzzdogee 创建的主题 程序员 有什么类似 ikbc Poker2 的键盘吗
魔极客,399 就能体验铝坨坨,当前流行的客制化结构。还有贱驴系列的。
2023-05-02 15:15:19 +08:00
回复了 humbass 创建的主题 程序员 有没有人跟我一样偏好原生 JS 写项目,而不是 TS
TS 给我更好的的开发体验,所以我用 TS 。你觉得原生 JS 给你更好的开发体验,那你就用原生 JS 。别为难自己就好
2023-04-29 21:54:16 +08:00
回复了 fancy2020 创建的主题 问与答 为什么现在的维修工价格这么高?
开锁,拿个卡片划一下,不到一分钟,50 块
2023-04-25 20:46:38 +08:00
回复了 zhuizhuidea 创建的主题 程序员 开源咯!一个低代码拖拉拽的表单编辑器
什么 xxx 低代码不是 kpi 项目,就是练手项目,目前就 amis 不错
2023-04-25 20:43:43 +08:00
回复了 zhuizhuidea 创建的主题 程序员 开源咯!一个低代码拖拉拽的表单编辑器
公司里项目用的话,可怜了遭受毒害的同事,如果是你们一起开发的,那可怜了以后接盘的
2023-04-25 09:07:09 +08:00
回复了 6c9fd 创建的主题 PHP 有什么 cms 能给每篇文章批量生成静态 html 的
Strapi+next.js
2023-04-21 00:52:53 +08:00
回复了 KevinQi 创建的主题 程序员 Vue3 的组合式 API 优点是啥?
@rocktodog8080 业务代码哪来那么多复用,vueuse 就够用了,用了那么久感觉最大的好处就是逻辑和 ui 可以分离,可以引入更多的架构的思想去规范项目整体框架
2023-04-21 00:41:28 +08:00
回复了 KevinQi 创建的主题 程序员 Vue3 的组合式 API 优点是啥?
https://juejin.cn/post/7139497477086019621 可以这样分层,维护起来巨爽,避免各种妖魔鬼怪的代码出现
2023-04-18 18:43:56 +08:00
回复了 zqlcrow 创建的主题 React 初学 redux,目录不知道怎么建
求求别再用 redux 了,为什么想不开
2023-04-17 23:14:44 +08:00
回复了 taogen 创建的主题 问与答 毕业 5 年,为什么我很后悔选择计算机行业
挺庆幸当初报的机械没有被录取
2023-04-17 23:13:03 +08:00
回复了 taogen 创建的主题 问与答 毕业 5 年,为什么我很后悔选择计算机行业
调剂的表示当初自己的专业是干什么的都不知道
1 ... 8  9  10  11  12  13  14  15  16  17 ... 29  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5575 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 09:11 · PVG 17:11 · LAX 02:11 · JFK 05:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.