融合AI创新:构建Node.js应用与GPT交互

前言

在当今数字化时代,人工智能技术以前所未有的速度融入我们的日常生活与工作中,其中自然语言处理技术的发展更是极大地拓宽了人机交互的边界。随着AI模型如OpenAI的GPT-3.5-Turbo的面世,我们正步入一个能够进行复杂对话、理解语境并生成连贯回应的新纪元。本文旨在深入探讨如何将这一前沿技术无缝集成到现代应用程序中,通过一个名为ChatAnywhere的示例项目,展示如何利用Node.js构建一个强大的、可定制的对话系统。

正文

获取API密钥

获取免费API密钥的前提是你已经注册了github账号,并且已经注册了7天以上。(如果不满足该前提的话就需要靠你的小伙伴了,或者等上几天)

获取免费API密钥传送门--github.com/chatanywher...

进去后向下滑找到

看见免费直接点进去,不要犹豫。

注意:公开分享API密钥是不安全的做法。

逐步实现

  1. 创建新的Node.js项目。

    csharp 复制代码
    npm init -y
  2. 安装openai库。

    css 复制代码
    npm i openai
  3. 引入本地openai库到项目中。

    javascript 复制代码
    const OpenAi = require('openai')
  4. 实例化一个clienet对象,并传入API密钥和基础URL。

    javascript 复制代码
    const OpenAi = require('openai')
    const client = new OpenAi({
        apiKey: 'API密钥',//在里面输入你获取到的API密钥
        baseURL: 'https://api.chatanywhere.tech/v1'
    })
  5. 定义一个异步函数main。异步函数允许使用await关键字等待Promise的结果,使得处理异步操作更加直观和简洁。

    javascript 复制代码
    const OpenAi = require('openai')
    const client = new OpenAi({
        apiKey: 'API密钥',//在里面输入你获取到的API密钥
        baseURL: 'https://api.chatanywhere.tech/v1'
    })
    async function main() {}
  6. 发送聊天完成请求:

    javascript 复制代码
    const OpenAi = require('openai')
    const client = new OpenAi({
        apiKey: 'API密钥',//在里面输入你获取到的API密钥
        baseURL: 'https://api.chatanywhere.tech/v1'
    })
    async function main() {
        const chatCompletion = await client.chat.completions.create(
            {
                messages: [{ role: 'user', content: '你是谁?请介绍你自己。' }],
                model: 'gpt-3.5-turbo',
            }
        )
    }

    函数内使用await调用了client.chat.completions.create方法,该方法发送一个请求到指定的API端点,以获取基于提供的消息和模型的回复。这里的请求体包含了一个消息数组,其中单个消息对象定义了用户的角色(role: 'user')和消息内容(content: '你是谁?请介绍你自己。')。同时指定了要使用的模型为gpt-3.5-turbo,这是OpenAI的一个流行模型,能够生成高质量的文本回复。

  7. 打印回复:

    javascript 复制代码
    async function main() {
        const chatCompletion = await client.chat.completions.create(
            {
                messages: [{ role: 'user', content: '你是谁?请介绍你自己。' }],
                model: 'gpt-3.5-turbo',
            }
        )
        console.log(chatCompletion.choices[0])
    }

    最后通过console.log(chatCompletion.choices[0])打印出API响应中第一个选择(choices[0])的内容。

    通常,choices是一个数组,每个元素代表一个可能的回复,但在大多数情况下,特别是当你没有特别设置的情况下,只会有一个回复。

  8. 调用main函数:

    javascript 复制代码
    const OpenAi = require('openai')
    const client = new OpenAi({
        apiKey: 'API密钥',//在里面输入你获取到的API密钥
        baseURL: 'https://api.chatanywhere.tech/v1'
    })
    
    async function main() {
        const chatCompletion = await client.chat.completions.create(
            {
                messages: [{ role: 'user', content: '你是谁?请介绍你自己。' }],
                model: 'gpt-3.5-turbo',
            }
        )
        console.log(chatCompletion.choices[0])
    }
    main()

    这就是完整代码了。不要忘记安装openai库嘞。

实现结果

利用 main函数能够实现交互,具体方式是对 {messages: [{ role: 'user', content: '你是谁?' }], model: 'gpt-3.5-turbo'} 中 content 的内容进行动态改变。

如何让交互更容易实现呢?这个问题就交给你解决吧,快动手一起快乐得敲代码吧。

小结

通过以上步骤,你已经成功创建了一个使用OpenAI API的简单Node.js应用,可以与GPT-3.5-Turbo模型进行交互。这个项目只是一个起点,你可以进一步扩展和自定义它,来满足更多的需求和应用场景。希望这个教程能够帮助你更好地理解和使用自然语言处理技术,探索更多的可能性。

相关推荐
牛战士coding17 分钟前
AI Agent 如何接入真实业务系统?订单助手三层架构完整拆解
人工智能·架构
·云扬·20 分钟前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
阿明副业观察43 分钟前
2026年免费AI视频生成工具功能深度解析:有无水印、中文语音及商业用途考量
大数据·人工智能·ai作画·aigc·音视频·ai写作
收放扳机1 小时前
PCB收放板设备机械手架构选型参考——三轴/四轴/六轴/蜘蛛手对比
人工智能·科技·架构·自动化·制造·pcb工艺
AKAMAI1 小时前
Akamai 宣布与Anthropic达成 116 亿美元多年期协议,以支持其日益增长的需求
人工智能·云计算
甲维斯1 小时前
我把“赶 Deadline”和AI做成了一款游戏
人工智能·游戏开发
Smoothcloud润云2 小时前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力
hsfxuebao2 小时前
380K Star 的 OpenClaw 凭什么碾压 Hermes Agent?源码级架构对决——从 Gateway 到 Agent Loop 的五维拆解
人工智能
唠点键盘之外的2 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
冬奇Lab2 小时前
开源项目第235期:REA — 让 AI Agent 逆向任何东西,从网站/Electron 应用一路分析到二进制层
人工智能·开源·资讯