在ChatGPT大火的的当下,我们来重新梳理一下OpenAI,ChatGPT以及Azure OpenAI之间的关系,以便让开发者能够更好地开发应用。OpenAI是一个人工智能研究机构,致力于开发复杂的人工智能系统。它的目标是创建一个通用的智能体,它可以同时执行语言理解、视觉感知等任务。ChatGPT是OpenAI开发的大型自然语言处理模型,它已经在新闻、搜索、小说等方面得到了初步应用。Azure OpenAI是Microsoft与OpenAI合作开发的,用户可以使用Azure上的GPU和Azure机器学习服务来运行和调优OpenAI模型。它可以帮助企业快速部署和运行OpenAI模型,并提供终结点端口以便快速开发应用系统。
目前,微软Azure openAI quickstart文档提供了python的示例代码和rest api调用方式。我们可以看到Python的openAI库提供了对Azure OpenAI的良好兼容性。但是对于nodejs,我们暂时没有看到官方的sample code。
Javascript拥有庞大的生态和丰富的前端组建,是构建类“ChatGPT”应用良好选择。目前在GitHub中已经可以看到许多使用Javascript/typescript围绕OpenAI服务开发的开源项目,如ChatGPT API,AI-assistant等。它们为开发者提供了丰富的中间层封装和前端应用示例,是未来构建多样化应用的基石。
与Javascript世界保持兼容性势在必行,经过一段时间的摸索,终于成功实现了nodejs openai原生库调用Azure OpenAI服务。大家可以从这个repo找到参考示例:
https://github.com/xuhaoruins/azure-openai-quickstart-node
几个需要注意的点:
1. 由于终结点不同,需要将configuration里的basePath参数修改为你的Azure endpoint。
2. configuration apikey配置不兼容,需要将Azure OpenAI服务的key从header传入。
3. API 版本需要从参数传入。nodejs completion函数参考格式如下:
特别感谢微软MVP胡先生提供Azure OpenAI Service API Endpoint用于开发测试。