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

相关推荐
如若1235 分钟前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
赛博守夜人1 小时前
AI安全攻防与治理之十六:对抗样本、恶意文件与多模态攻击,AI 内容安全检测的真实盲区
人工智能·安全
罗西的思考1 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
yh弓长1 小时前
Agent 的 ReAct、Plan、Execute、Reflection 模式
人工智能
GlobalInfo1 小时前
2026年全球机器人用超平执行器市场研究报告:市场规模达7.51亿美元,人形机器人商业化与轻量化运动控制需求推动行业增长
大数据·人工智能·数码相机·microsoft·机器人
冬奇Lab2 小时前
一天一个开源项目(第252篇):Lightpanda —— 用 Zig 从零写的 AI 专用无头浏览器,内存省 16 倍、速度快 9 倍
人工智能·开源·资讯
在努力的前端小白2 小时前
基于FastAPI+LangChain+LangGraph+Agent+多模态的AI Agent 有渔渔具网站
人工智能·langchain·vue·fastapi
锋行天下2 小时前
Langgraph-cli 本地构建失败,改用服务器docker构建的流程
人工智能·前端框架·全栈
释厄6233 小时前
群体投票双通道狭隘论——AI泡沫出清后的主角确权
人工智能
IT古董3 小时前
《Agent开发工程师成长指南》- 第4章 第2节:Prompt设计五要素——任务、角色、上下文、约束与输出格式
大数据·人工智能·prompt