#div_digg { float: right; font-size: 12px; margin: 10px; text-align: center; width: 120px; position: fixed; right: 0; bottom: 0; z-index: 10; background-color: rgba(255, 255, 255, 1); padding: 10px; border: 1px solid rgba(204, 204, 204, 1) }
#cnblogs_post_body pre code span { font-family: Consolas, monospace }
#blogTitle>h2 { font-family: Consolas, monospace }
#blog-news { font-family: Consolas, monospace }
#topics .postTitle a { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; font-weight: bold }
#cnblogs_post_body p { margin: 18px auto; color: rgba(0, 0, 0, 1); font-family: Georgia, Times New Roman, Times, sans-serif, monospace; font-size: 16px; text-indent: 0 }
#cnblogs_post_body h1 { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; font-size: 32px; font-weight: bold; line-height: 1.5; margin: 10px 0 }
#cnblogs_post_body h2 { font-family: Consolas, "Microsoft YaHei", monospace; font-size: 26px; font-weight: bold; line-height: 1.5; margin: 20px 0 }
#cnblogs_post_body h3 { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; font-size: 20px; font-weight: bold; line-height: 1.5; margin: 10px 0 }
#cnblogs_post_body h4 { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; font-size: 18px; font-weight: bold; margin: 10px 0 }
em { font-style: normal; color: rgba(0, 0, 0, 1) }
#cnblogs_post_body ul li { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; color: rgba(0, 0, 0, 1); font-size: 16px; list-style-type: disc }
#cnblogs_post_body ol li { font-family: Georgia, Times New Roman, Times, sans-serif, monospace; color: rgba(0, 0, 0, 1); font-size: 16px; list-style-type: decimal }
#cnblogs_post_body a:link { text-decoration: none; color: rgba(0, 44, 153, 1) }
#topics .postBody blockquote { background: rgba(255, 243, 212, 1); border-top: none; border-right: none; border-bottom: none; border-left: 5px solid rgba(246, 183, 60, 1); margin: 0; padding-left: 10px }
.cnblogs-markdown code { font-family: Consolas, "Microsoft YaHei", monospace !important; font-size: 16px !important; line-height: 1.8; background-color: rgba(245, 245, 245, 1) !important; border: none !important; padding: 0 5px !important; border-radius: 3px !important; margin: 1px 5px; vertical-align: middle; display: inline-block }
.cnblogs-markdown .hljs { font-family: Consolas, "Microsoft YaHei", monospace !important; font-size: 16px !important; line-height: 1.5 !important; padding: 5px !important }
#cnblogs_post_body h1 code, #cnblogs_post_body h2 code { font-size: inherit !important; border: none !important }

Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

前言

在 AI 飞速发展的时代,大型语言模型(LLMs)逐渐成为推动技术进步的重要力量。无论是自然语言处理、文本生成,还是智能问答和代码辅助,LLMs 的应用场景正在不断扩展,各种模型层出不穷。然而,面对种类繁多的模型和各自不同的接口标准,开发者在集成和管理这些模型时往往会面临复杂性和兼容性的问题。

Pantheons 的诞生正是为了解决这一痛点。它是一个使用 TypeScript 基于 OpenAI Node.js SDK 构建的统一对话库,旨在为开发者提供一个简洁、高效的接口,方便与多个大型语言模型(LLMs)进行交互。通过 Pantheons,开发者可以轻松集成 OpenAI、DeepSeek、DashScope、Gemini 等主流语言模型,无需担心底层差异,专注于实现自己的业务逻辑。

功能特性

  • 统一接口设计:所有模型基于 OpenAI Node.js SDK 构建;共享相同的调用方式,大幅降低学习成本
  • 类型安全:基于 TypeScript 构建,提供完整的类型定义,让开发更加顺畅
  • 支持多种模型:目前支持十几种主流大语言模型,包括 OpenAI、Azure OpenAI、通义千问、文心一言、腾讯混元、Google Gemini 等,覆盖几乎所有主流云端和本地 LLM 服务。
  • 适配多种运行环境:支持 Node.js, Bun 和 Web 等多种运行时环境,适配性强。

支持的大模型

使用方法

Nodejs


import { DeepSeek } from 'pantheons'; (async () => {
const client = new DeepSeek('Your key');
const stream = await client.stream({
model: 'deepseek-chat',
stream: true,
messages: [{ role: 'user', content: 'Hi!' }],
}); let result = '';
for await (const chunk of stream) {
result += chunk.choices[0].delta?.content;
} console.log(result);
})();

Bun


import { DeepSeek } from '@greywen/pantheons'; const client = new DeepSeek('Your key');
const stream = await client.stream({
model: 'deepseek-chat',
stream: true,
messages: [{ role: 'user', content: 'Hi!' }],
}); let result = '';
for await (const chunk of stream) {
result += chunk.choices[0].delta?.content;
} console.log(result);

多模型


import { DashScope, Moonshot, DeepSeek } from 'pantheons'; const deepSeekClient = new DeepSeek('Your key');
const dashScopeClient = new DashScope('Your key');
const moonshotClient = new Moonshot('Your key'); const messages = [{ role: 'user', content: 'Hi!' }]; const deepSeekStream = await dashScopeClient.stream({
model: 'deepseek-chat',
stream: true,
messages,
}); const dashScopeStream = await dashScopeClient.stream({
model: 'qwen-max',
stream: true,
messages,
}); const moonshotStream = await moonshotClient.stream({
model: 'kimi-latest',
stream: true,
messages,
}); async function readStream(stream: AsyncIterable<any>, output: string[]) {
for await (const chunk of stream) {
const content = chunk.choices[0].delta?.content || '';
output.push(content);
}
} const deepSeekOutput: string = [];
const dashScopeOutput: string[] = [];
const moonshotOutput: string[] = []; await Promise.all([
readStream(deepSeekStream, deepSeekOutput),
readStream(dashScopeStream, dashScopeOutput),
readStream(moonshotStream, moonshotOutput),
]); console.log(deepSeekOutput, dashScopeOutput, moonshotOutput);

总结

Pantheons 是一个面向多模型集成工具,借助其统一、高效的接口设计,开发者可以显著减少在多语言模型集成中的开发成本和时间。无论你是希望快速接入一个模型,还是需要在多个模型之间自由切换,Pantheons 都能成为你不可或缺的工具。

未来,Pantheons 将继续扩展更多模型的支持,同时优化性能与易用性,为开发者提供更强大的工具链。如果你正在寻找一个解决多模型集成痛点的方案,不妨试试 Pantheons

欢迎广大开发者 Star 、提交 issue、贡献代码、参与讨论, 感谢!

同时也欢迎大家使用我们已发布的大模型项目 Sdcb Chats 如果您觉得有帮助请在 GitHub 上 Star 我们!您的支持是我们前进的动力。

再次感谢您的支持,期待未来为您带来更多惊喜!

Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库的更多相关文章

  1. AI大模型学习了解

    # 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...

  2. DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

    DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...

  3. 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00

    武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...

  4. 微信事业群WXG成立 致力于打造微信大平台

    今天,微信之父张小龙带领微信团队成立微信事业群(WeiXin Group,简称WXG),致力于打造微信大平台,由他们负责微信基础平台.微信开放平台.微信支付拓展.O2O等微信延伸业务的发展,并包括邮箱 ...

  5. 王灏:光音网络致力打造Wi-Fi大生态圈

    光音网络,做的是本地网络综合服务.在中国,想把互联网做到覆盖延伸范围之外的最后100米,光音网络是当中一家,也是最坚持的一家.为千万家本地生活商户提供帮助,为数亿本地用户提供最佳的本地网络体验,这是光 ...

  6. Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

    Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...

  7. 两眼论&矩阵变现理论结合打造赚钱大模式

    两眼论&矩阵变现理论结合打造赚钱大模式 围棋有一个基本规则,就是一块棋有两只真眼,就是活棋. 围棋没有复杂的规则,它最有趣的地方是没有太多的规则和限制,由此演变出了大千世界,所以古人云“棋如人 ...

  8. PowerDesigner 学习:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  9. PowerDesigner 15学习笔记:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  10. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

随机推荐

  1. Alpine介绍与apk的基本使用

    前言 Alpine是一个面向安全的轻量级的Linux发行版,相比与CentOS,ubuntu体积小很多,大约只有5M左右,由于体积小的原因,在很多场景下都会使用它来按需制作一些轻量级镜像,虽然体积小但 ...

  2. linux shell移植,sh不支持数组及bash移植

    查看此时系统shell ls -al /bin/sh Linux 操作系统缺省的 shell 是Bourne Again shell,它是 Bourne shell 的扩展,简称 Bash,与 Bou ...

  3. Gitlab 实现仓库完全迁移

    方法一:最快 gitlab用url导入注意事项看图 方法二 首先需要在新的服务服务器上新建一个项目 然后用 Git Bash 执行以下命令 git clone --mirror 项目原代码仓库地址 / ...

  4. Qt编写安防视频监控系统67-跨平台及国产系统

    一.前言 得益于Qt的超强跨平台特性,本系统也是跨平台的,亲测的系统包括windows全系列.ubuntu全系列.centeos.国产系统UOS.国产系统银河麒麟.中标麒麟.嵌入式linux.树莓派. ...

  5. 基于斜率-截距式参数方程的直线Hough变换

  6. 即时通讯技术文集(第43期):直播技术合集(Part3) [共13篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 43 期. [-1-] 直播系统聊天技术(一):百万在线的美拍直播弹幕系统的实时推送技术实践 ...

  7. NVM及NODE开发环境搭建

    NVM及NODE开发环境搭建 1. 安装NVM 1.1 下载安装包 下载地址 1.2 安装 双击安装包,一路下一步即可.安装完成后在终端输入nvm version,能查到版本号说明安装成功了. 2. ...

  8. G1原理—5.G1垃圾回收过程之Mixed GC

    大纲 1.Mixed GC混合回收是什么 2.YGC可作为Mixed GC的初始标记阶段 3.Mixed GC并发标记算法详解(一) 4.Mixed GC并发标记算法详解(二) 5.Mixed GC并 ...

  9. w3cschool-Zookeeper 教程

    参考https://www.w3cschool.cn/zookeeper/ Zookeeper 概述 ZooKeeper 是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂 ...

  10. 【YashanDB知识库】导入数据时报错:YAS-00008 type convert error:literal does not match format string

    本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7901522.html?templateId=1718516 现象 将数据通过SQ ...