当前位置: 首页 > news >正文

Electron Forge【实战】阿里百炼大模型 —— AI 聊天

获取 apiKey

登录并开通阿里云百炼
https://bailian.console.aliyun.com/#/home

新人有半年免费的使用福利,在模型详情中,可以查看剩余的免费额度
https://bailian.console.aliyun.com/?tab=model#/model-market/detail/qwen-turbo

在这里插入图片描述

在下方链接中创建 apiKey
https://bailian.console.aliyun.com/?tab=model#/api-key

在这里插入图片描述

安装 OpenAI SDK

npm install openai

src/providers/OpenAIProvider.ts

import OpenAI from 'openai'interface ChatMessageProps {role: string;content: string;
}interface UniversalChunkProps {is_end: boolean;result: string;
}export class OpenAIProvider {private client: OpenAI;constructor(apiKey: string, baseURL: string) {this.client = new OpenAI({apiKey,baseURL})}async chat(messages: ChatMessageProps[], model: string) {const stream = await this.client.chat.completions.create({model,messages,stream: true})const self = thisreturn {async *[Symbol.asyncIterator]() {for await (const chunk of stream) {yield self.transformResponse(chunk)}}}}protected transformResponse(chunk: OpenAI.Chat.Completions.ChatCompletionChunk): UniversalChunkProps {const choice = chunk.choices[0]return {is_end: choice.finish_reason === 'stop',result: choice.delta.content || ''}}
}

src/providers/createProvider.ts

import { QianfanProvider } from "./QianfanProvider";
import { OpenAIProvider } from './OpenAIProvider'export function createProvider(providerName: string) {const providerConfigs = {aliyun: {apiKey: "换成第一步获取的apiKey",baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",}};// 为了解决类型错误,先进行类型断言,确保可以通过 providerName 访问 providerConfigsconst providerConfig = (providerConfigs as { [key: string]: any })[providerName];switch (providerName) {case "qianfan":if (!providerConfig.accessKey || !providerConfig.secretKey) {throw new Error("缺少千帆API配置:请在设置中配置 accessKey 和 secretKey");}return new QianfanProvider(providerConfig.accessKey,providerConfig.secretKey);case 'aliyun':if (!providerConfig.apiKey || !providerConfig.baseUrl) {throw new Error('缺少阿里云百炼API配置:请在设置中配置 apiKey 和 baseUrl')}return new OpenAIProvider(providerConfig.apiKey, providerConfig.baseUrl)default:throw new Error(`不支持的AI服务提供商: ${providerName}`);}
}

其他通用代码见
https://blog.csdn.net/weixin_41192489/article/details/147492144

效果预览

在这里插入图片描述
在这里插入图片描述

相关文章:

  • Flink checkpoint问题排查指南
  • 如何修复宝可梦时时刻刻冒险无法正常工作
  • CuML + Cudf (RAPIDS) 加速python数据分析脚本
  • 26考研 | 王道 | 数据结构笔记博客总结
  • Flink TaskManager详解
  • 力扣DAY68 | 热100 | 寻找两个正序数组的中位数
  • 使用npm install或cnpm install报错解决
  • 从 “制造” 到 “品牌”:官网建设助力中国企业突围东南亚
  • netcore8.0项目发布到centos,利用nginx反向代理(宝塔面板篇)
  • 【服务器操作指南】从 Hugging Face 上下载文件 | 从某一个网址上下载文件到 Linux 服务器的指定目录
  • STM32F103C8T6信息
  • 数据可视化平台产品介绍及功能特色
  • C 语言内存分配方法及优缺点
  • 光谱分辨率:解锁光的密码
  • CSS常见布局
  • Python实验4 列表与字典应用
  • Flowable7.x学习笔记(十四)查看部署流程Bpmn2.0-xml
  • 【MySQL】(8) 联合查询
  • 【DE-III】基于细节增强的模态内和模态间交互的视听情感识别
  • 图像修复模型MAT(Mask-Aware Transformer)的训练、推理实战记录
  • 5145篇报道中的上海车展:40年,什么变了?
  • 当代视角全新演绎,《风雪夜归人》重归首都剧场
  • 五粮液一季度净利增长5.8%,今年营收与宏观经济指标保持一致
  • 滁州一交通事故责任认定引质疑:民警和司法鉴定人被处罚,已中止诉讼
  • 北京市平谷区政协原主席王春辉接受纪律审查和监察调查
  • “仅退款”将成历史?电商平台集中调整售后规则