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

相关推荐
NAGNIP11 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP16 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年16 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
Mr_li17 小时前
NestJS 集成 TypeORM 的最优解
node.js·nestjs
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区18 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈18 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能