Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
#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 等多種運行時環境,適配性強。
支持的大模型
- OpenAI
- Azure OpenAI
- 通義千問(DashScope)
- 騰訊混元(HunYuan)
- 月之暗面(Moonshot)
- 硅基流動(SiliconFlow)
- DeepSeek
- 文心一言(QianFan)
- Gemini
- Ollama
- 智譜清言(ZhiPu)
- XAI
- 零一萬物(LingYiWanWu)
- MiniMax
- 訊飛星火(Spark)
- Anthropic(Claude)
使用方法
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 打造主流大模型对话的一站式集成库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Extjs Window用法详解 3 打
- 下一篇: 如何通过 Linux Bash 技术,让