
ModelFusion是一个强大的TypeScript库,旨在简化AI应用程序的开发过程。作为一个抽象层,它为开发者提供了一套统一的API,用于集成各种AI模型到JavaScript和TypeScript应用中。ModelFusion支持多种常见操作,如文本生成、对象生成和工具使用等,同时还提供了诸如可观察性、日志记录和自动重试等生产级功能。
ModelFusion具有以下几个突出特点:
供应商中立: ModelFusion是一个非商业的开源项目,由社区驱动。开发者可以使用任何受支持的提供商。
多模态支持: 该库支持广泛的模型类型,包括文本生成、图像生成、视觉、文本到语音、语音到文本以及嵌入模型等。
类型推断和验证: ModelFusion在可能的情况下推断TypeScript类型,并验证模型响应。
可观察性和日志记录: 提供了观察者框架和日志支持,方便开发者监控和调试。
弹性和稳健性: 通过自动重试、限流和错误处理机制确保操作的无缝进行。
为生产而生: ModelFusion完全可树摇,可用于无服务器环境,并且只使用最小的依赖集。
要开始使用ModelFusion,您可以通过npm安装:
npm install modelfusion
或者使用以下入门模板之一:
ModelFusion提供了多种功能,以下是一些常用功能的示例:
使用语言模型和提示生成文本。如果模型支持,您可以流式传输文本。对于支持多模态提示的模型(如llama.cpp),您还可以使用图像作为提示的一部分。
import { generateText, openai } from "modelfusion"; const text = await generateText({ model: openai.CompletionTextGenerator({ model: "gpt-3.5-turbo-instruct" }), prompt: "Write a short story about a robot learning to love:\n\n", });
使用语言模型和模式生成类型化对象。
import { ollama, zodSchema, generateObject, jsonObjectPrompt, } from "modelfusion"; const sentiment = await generateObject({ model: ollama .ChatTextGenerator({ model: "openhermes2.5-mistral", maxGenerationTokens: 1024, temperature: 0, }) .asObjectGenerationModel(jsonObjectPrompt.instruction()), schema: zodSchema( z.object({ sentiment: z .enum(["positive", "neutral", "negative"]) .describe("Sentiment."), }) ), prompt: { system: "You are a sentiment evaluator. " + "Analyze the sentiment of the following product review:", instruction: "After I opened the package, I was met by a very unpleasant smell " + "that did not disappear even after washing. Never again!", }, });
从提示生成图像。
import { generateImage, openai } from "modelfusion"; const image = await generateImage({ model: openai.ImageGenerator({ model: "dall-e-3", size: "1024x1024" }), prompt: "the wicked witch of the west in the style of early 19th century painting", });

从文本合成语音(音频)。也称为TTS(文本到语音)。
import { generateSpeech, lmnt } from "modelfusion"; // `speech` is a Uint8Array with MP3 audio data const speech = await generateSpeech({ model: lmnt.SpeechGenerator({ voice: "034b632b-df71-46c8-b440-86a42ffc3cf3", // Henry }), text: "Good evening, ladies and gentlemen! Exciting news on the airwaves tonight " + "as The Rolling Stones unveil 'Hackney Diamonds,' their first collection of " + "fresh tunes in nearly twenty years, featuring the illustrious Lady Gaga, the " + "magical Stevie Wonder, and the final beats from the late Charlie Watts.", });
ModelFusion还提供了工具和向量索引 功能,这些功能对于构建聊天机器人和智能代理特别有用。
工具是可以由AI模型执行的函数(及相关元数据)。ModelFusion提供了几个开箱即用的工具,如Math.js、MediaWiki搜索、SerpAPI和Google自定义搜索。您还可以创建自定义工具。
向量索引允许您存储和检索嵌入向量,这对于实现高效的相似性搜索和信息检索非常有用。
const texts = [ "A rainbow is an optical phenomenon that can occur under certain meteorological conditions.", "It is caused by refraction, internal reflection and dispersion of light in water droplets resulting in a continuous spectrum of light appearing in the sky.", // ... ]; const vectorIndex = new MemoryVectorIndex<string>(); const embeddingModel = openai.TextEmbedder({ model: "text-embedding-ada-002", }); // update an index - usually done as part of an ingestion process: await upsertIntoVectorIndex({ vectorIndex, embeddingModel, objects: texts, getValueToEmbed: (text) => text, }); // retrieve text chunks from the vector index - usually done at query time: const retrievedTexts = await retrieve( new VectorIndexRetriever({ vectorIndex, embeddingModel, maxResults: 3, similarityThreshold: 0.8, }), "rainbow and water droplets" );
ModelFusion支持不同的提示样式(如文本、指令或聊天提示)。这些提示样式可以通过.withTextPrompt()、.withChatPrompt()和.withInstructionPrompt()方法访问:
const text = await generateText({ model: openai .ChatTextGenerator({ // ... }) .withTextPrompt(), prompt: "Write a short story about a robot learning to love", });
ModelFusion提供了观察者框架和日志支持。您可以轻松跟踪运行和调用层次结构,并添加自己的观察者。
import { generateText, openai } from "modelfusion"; const text = await generateText({ model: openai.CompletionTextGenerator({ model: "gpt-3.5-turbo-instruct" }), prompt: "Write a short story about a robot learning to love:\n\n", logging: "detailed-object", });
ModelFusion为开发者提供了一个强大而灵活的工具集,用于构建各种AI应用。无论您是想创建一个简单的聊天机器人,还是构建一个复杂的多模态AI系统,ModelFusion都能为您提供所需的抽象和功能。通过其统一的API、多模态支持和生产级功能,ModelFusion大大简化了AI应用的开发过程,使开发者能够专注于创造独特的用户体验,而不是处理底层的模型集成细节。
随着AI技术的不断发展,ModelFusion也在持续更新和改进。开发者社区的贡献使得这个库能够跟上最新的AI趋势和最佳实践。无论您是AI开发新手还是经验丰富的专家,ModelFusion都为您提供了一个理想的起点,让您能够快速、高效地将AI功能集成到您的应用中。

通过使用ModelFusion,您不仅可以加速开发过程,还可以确保您的AI应用具有良好的可扩展性和可维护性。随着项目的成长,ModelFusion的模块化设计和丰富的功能集将继续支持您的需求,使您的应用能够轻松适应新的挑战和机遇。
开始使用ModelFusion,探索AI应用开发的无限可能性吧!


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


阿里Qoder团队推出的桌面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全 流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号