#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. [SpringBoot]浏览器输出中文乱码问题解决

    问题情境: IDEA.Springboot.浏览器访问接口查看返回的JSON数据,发现中文乱码 解决方案: server: servlet: encoding: charset: UTF-8 enab ...

  2. 在Ubuntu系统上手动安装GCC环境

    Ubuntu系统是自带GCC安装指令的apt install gcc,当前apt源中gcc版本为5.4.0,版本太低,推荐手动安装gcc8.3.0 手动安装gcc8.3.0之前需要先确保安装gcc环境 ...

  3. Qt设置运行时动态库路径的几点说明

    随着需求的不断增加,程序不断变大,用到的动态库也越来越多,到了发布程序的时候你会发现和可执行文件同一目录下文件数量真多(比如著名的金融软件 https://www.webull.com/ 哎呀我去,目 ...

  4. Python 元类(Meta Class):解密 Python 面向对象编程的幕后推手

    在 Python 编程中,我们每天都在和类打交道,但是你是否也和我一样想过:类本身是什么?是谁创建了类?元类(Meta Class)就是用来创建类的"类".今天让我们一起深入理解这 ...

  5. 『AotuHotKey』——一个小巧却高效的实用效率工具

    [!note] 本来主要是想找一下「」和『』,然后这个方法直接可以找到大部分的特殊字符 通过输入法输出 『Ctr + shift + Z』进入搜狗输入法的『符号大全』 在『标点符号』项可以找到「」和『 ...

  6. SpringCloud-Ribbon

    1. Ribbon简介 Ribbon是一个基于HTTP和TCP的客户端负载均衡器,当使用Ribbon对服务进行访问的时候,他会扩展Eureka客户端的服务发现功能,实现从Eureka注册中心获取服务端 ...

  7. 更改高通xbl串口log波特率

    本修改基于高通QCM6125平台,目的是为了满足客户无聊的需求. 注意事项: 基准时钟频率需要是硬件和驱动支持的频率,时钟频率和分频系数可以从AP侧驱动中找到 最低分频系数需要满足分频公式(能够被整除 ...

  8. Kafka优化提升

    一.如何优化kafka集群 1.吞吐量 2.低延时 生产者 a.batch.size=512kb或1MB(批量数据大小) b.buffer.memory=64M(缓冲区大小) c.linger.ms= ...

  9. biancheng-Spring

    目录http://c.biancheng.net/spring/spring-abc.html 1Spring是什么2Spring体系结构3Spring开发环境搭建4第一个Spring程序5Sprin ...

  10. delphi中unit单元文件说明

    单元(unit)是组成Pascal程序的单独的源代码模块,单元有函数和过程组成,这些函数和过程能被主程序调用.一个单元至少要有unit语句,interface,和implementation三部分,也 ...