融合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模型进行交互。这个项目只是一个起点,你可以进一步扩展和自定义它,来满足更多的需求和应用场景。希望这个教程能够帮助你更好地理解和使用自然语言处理技术,探索更多的可能性。

相关推荐
夏同学Xavi6 分钟前
skls-mgr:统一管理 Agent Skills 的 CLI 工具
人工智能·程序员·命令行
天青色等烟雨0910 分钟前
Skill的终局:不是被生成,而是能进化
人工智能·agent
FPGA-ADDA13 分钟前
第四篇:嵌入式系统常用通信接口详解(I2C、SPI、UART、RS232/485、CAN、USB)
人工智能·单片机·嵌入式硬件·fpga开发·信息与通信
智算菩萨16 分钟前
【How Far Are We From AGI】7 AGI的七重奏——从实验室到现实世界的应用图景与文明展望
论文阅读·人工智能·ai·agi·感知
一招定胜负26 分钟前
从 TXT 到 CSV 再到 Flask 部署:语音转写 AI 总结全流程实战
人工智能
数字供应链安全产品选型35 分钟前
#AI原生安全,Gartner 点名之后:AIST 技术正在进入深水区
大数据·人工智能
liukuang11036 分钟前
阿里Q3财报:全栈AI驱动下的价值重构
人工智能·重构
landuochong2001 小时前
claude增加自动化日历提醒功能,并同步到iphone日历
人工智能·iphone·claudecode
lcj09246661 小时前
机房U位资产智能化管理解决方案:破解传统运维痛点
人工智能
正宗咸豆花1 小时前
端到端AI决策架构如何重塑实时协作体验?
人工智能·架构