广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用ChatGPT搭建AI网站
  • 397
分享到

如何使用ChatGPT搭建AI网站

Python 官方文档:入门教程 => 点击学习

摘要

1.概述 ChatGPT是一款基于GPT-3.5架构的大型语言模型,它能够进行自然语言处理和生成对话等任务。作为一款智能化的聊天机器人,ChatGPT有着广泛的应用场景,如在线客服、

1.概述

ChatGPT是一款基于GPT-3.5架构的大型语言模型,它能够进行自然语言处理和生成对话等任务。作为一款智能化的聊天机器人,ChatGPT有着广泛的应用场景,如在线客服、智能助手、个性化推荐等。今天笔者给大家分享一下如何使用ChatGPT的api模型快速搭建一个ai网站。

2.内容

在实战中,我发现ChatGPT的最大优势在于其自然流畅的对话交互能力。ChatGPT能够自动理解用户的意图和提出的问题,并针对性地给出回答和建议。同时,它还可以基于已有的上下文信息生成更加丰富的回复,从而实现更加自然和贴近人类的交互效果。

下面我将分享一些关于如何使用ChatGPT的实战经验,大概流程如下所示:

在使用ChatGPT前,我们需要对数据进行预处理。预处理的目的是将原始文本转换为模型可以理解的格式。具体来说,需要进行的预处理步骤包括:分词、标记化、向量化等。这些步骤都可以使用常见的NLP工具库来实现,如NLTK、spaCy、transfORMers等。在预处理完数据后,我们需要使用训练数据来训练ChatGPT模型。通常情况下,我们会使用一些优秀的深度学习框架来实现模型的训练,如PyTorchTensorflow等。在模型训练过程中,我们需要设置一些超参数,如学习率、批量大小、模型深度等。在模型训练完成后,我们需要对模型进行评估。评估的目的是了解模型的性能和表现,从而决定是否需要进行进一步的调整和优化。常见的模型评估指标包括:准确率、召回率、F1值等。在完成模型训练和评估后,我们需要将ChatGPT应用到实际场景中。通常情况下,我们需要将ChatGPT集成到我们的应用程序中,如在线客服、智能助手等。在部署过程中,我们需要考虑一些问题,如性能、可靠性、安全性等。

3.如何使用ChatGPT快速实现一个AI网站呢?

使用ChatGPT实现一个AI网站,大概步骤如下所示:

首先,您需要确定您的AI网站将用于哪些目的和哪些受众。您的目标可能是提供在线客服、智能问答、语音识别、自动翻译等功能。您的受众可能是您的客户、读者、访问者等。通过明确您的目标和受众,您可以更好地规划您的网站架构和设计。要构建一个AI网站,您需要选择一个web开发框架。常用的WEB开发框架包括Djangoflask、Express等。这些框架提供了许多常见的功能和模板,可以帮助您更快速地开发网站,并提高开发效率。集成ChatGPT是实现AI网站的关键步骤。您可以使用pythonjavascript编程语言来调用ChatGPT API并将其嵌入到您的Web应用程序中。这样,您的网站就可以通过ChatGPT提供更好的用户体验和服务。例如,用户可以通过与ChatGPT交互来获取问题的答案、进行语音交互等。

为了让用户能够更好地与ChatGPT交互,您需要创建一个用户友好的界面。您可以使用htmlCSS、JavaScript等技术来设计和创建您的用户界面。您需要考虑到用户的需求和体验,并确保您的界面简洁、易用、美观等。为了让ChatGPT能够准确地回答用户的问题,您需要对ChatGPT进行训练。您可以使用自然语言处理技术来训练ChatGPT,以便它能够理解和响应用户的问题。您可以使用开源的数据集和算法来训练ChatGPT,并优化模型以提高精度和效率。

在将您的网站部署到生产环境之前,您需要对它进行测试和优化。您应该检查所有功能并确保它们能够正常运行,同时还应该优化性能和用户体验,以提高用户满意度。您可以使用自动化测试工具来测试您的网站,并使用性能分析工具来识别瓶颈和优化点。您可以收集用户反馈并进行改进,以不断改善您的网站。

当您准备好将您的网站部署到生产环境时,您需要选择一个合适的Web服务器数据库。常用的Web服务器包括Apache、Nginx等,常用的数据库包括Mysqlpostgresql等。您还需要选择一个合适的云服务提供商,如AWS、Google Cloud等,并将您的应用程序部署到云服务器上。一旦您的网站部署到生产环境,您需要进行定期的维护和升级。您应该定期备份您的数据并更新您的应用程序以确保安全性和稳定性。您还应该持续地优化您的用户体验和功能,以满足用户的需求和期望。

4.基于promptable快速实现

如果你不懂算法,那么可以通过在promptable 快速建立prompt,然后部署生成一个PromptID,通过这个PromptID直接调用OpenAI的接口得到模型输出的结果。操作如下:

4.1 编写一个hook模块

用来调用OpenAI的接口,获取输出结果,实现代码如下所示:

import { addMessage, getHistoryString } from "@/utils/chatHistory";
import React, { useEffect } from "react";

export const useChatGpt = (message, promptId, chatHistory) => {
  // Send user meesage to api, meesage and prompt in body
  // then update state value with response
  //   console.log("Hook api call", message, promptId);
  const [data, setData] = React.useState("");
  const [isLoading, setIsLoading] = React.useState(false);
  const [isError, setIsError] = React.useState(false);
  const [history, setHistory] = React.useState(chatHistory);
  const [isSuccess, setIsSuccess] = React.useState(false);

  const fetchData = async () => {
    setIsLoading(true);
    try {
      const response = await fetch("/api/chatgpt", {
        method: "POST",
        headers: {
          "Content-Type": "application/JSON",
        },
        body: jsON.stringify({
          message,
          promptId,
          chatHistory: getHistoryString(chatHistory),
        }),
      }).then((res) => res.json());
      if (response.reply) {
        console.log("Hook api call response", response.reply);
        setData(response.reply);
        setIsSuccess(true);
        setHistory(addMessage(chatHistory, response.reply, "agent"));
      } else {
        setIsError(true);
      }
    } catch (error) {
      setIsError(true);
    }
    setIsLoading(false);
  };

  useEffect(() => {
    setIsError(false);
    setIsSuccess(false);
    if (message) {
      fetchData();
    }
  }, [message]);

  useEffect(() => {
    setHistory(chatHistory);
  }, [chatHistory]);

  useEffect(() => {
    if (promptId) {
      setIsError(false);
      setIsSuccess(false);
      setHistory([]);
    }
  }, [promptId]);

  return {
    data,
    isLoading,
    isError,
    history,
    isSuccess,
  };
};

通过编写一个页面组件,用来实现与后台接口服务交互使用,该模块用来调用模型并得到输出结果,实现代码如下所示:

import { useChatGpt } from "@/hook/useChatGpt";
import { addMessage } from "@/utils/chatHistory";
import { Button, TextField } from "@mui/material";
import React, { useEffect } from "react";
import { ChatHistoryFrame } from "./ChatHistoryFrame";

const promptId = "xxxxxx"; // 通过Prompt自动生成获取ID

export const ChatContainer = () => {
  const [pendingMessage, setPendingMessage] = React.useState("");
  const [message, setMessage] = React.useState("");
  const [chatHistory, setChatHistory] = React.useState([]);
  const { isLoading, history, isSuccess, isError } = useChatGpt(
    message,
    promptId,
    chatHistory
  );

  useEffect(() => {
    if (isSuccess || isError) {
      setMessage("");
    }
  }, [isSuccess, isError]);

  return (
    <div>
        <h1>MOVIE to emoji</h1>
      </a>
      <ChatHistoryFrame chatHistory={chatHistory} isLoading={isLoading} />
      <div>
        <TextField
          type="text"
          onChange={(e) => {
            setPendingMessage(e.target.value);
          }}
        />
        <Button
          style={{
            backgroundColor: "black",
            width: "80px",
          }}
          variant="contained"
          onClick={() => {
            setMessage(pendingMessage);
            setChatHistory(addMessage(history || [], pendingMessage, "user"));
          }}
        >
          Send
        </Button>
        <Button
          style={{
            color: "black",
            width: "80px",
            borderColor: "black",
          }}
          variant="outlined"
          onClick={() => {
            setMessage("");
            setChatHistory([]);
          }}
        >
          Clear
        </Button>
      </div>
    </div>
  );
};

编写一个调用ChatGPT接口逻辑的核心模块,用来与API交互得到输出结果,具体实现细节如下:

import { PromptableApi } from "promptable";
import { Configuration, OpenAIApi } from "openai";
import GPT3Tokenizer from "gpt3-tokenizer";

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const tokenizer = new GPT3Tokenizer({ type: "gpt3" });

const chatgpt = async (req, res) => {
  const { message, promptId, chatHistory } = req.body;
  console.log("api call entry", message, promptId);
  if (!message) {
    res.status(400).json({ error: "Message is required" });
    return;
  }
  if (!promptId) {
    res.status(400).json({ error: "Prompt ID is required" });
    return;
  }
  // call prompt ai api and openai api
  const reply = await getReply(message, promptId, chatHistory || "");
  res.status(200).json({ reply });
  return;
};

const getReply = async (message, promptId, chatHistory) => {
  // get prompt from prompt ai api based on promptId
  if (!promptId) {
    throw new Error("Prompt ID is required");
  }
  const promptDeployment = await PromptableApi.getActiveDeployment({
    promptId: promptId,
  });
  console.log("prompt deployment", promptDeployment);
  if (!promptDeployment) {
    throw new Error("Prompt deployment not found");
  }
  // replace prompt with message

  const beforeChatHistory = promptDeployment.text.replace("{{input}}", message);

  const numTokens = countBPETokens(beforeChatHistory);
  const afterChatHistory = beforeChatHistory.replace(
    "{{chat history}}",
    chatHistory
  );

  const finalPromptText = leftTruncateTranscript(
    afterChatHistory,
    4000 - numTokens
  );

  const revisedPrompt = {
    ...promptDeployment,
    text: finalPromptText,
  };

  console.log("revised prompt", revisedPrompt);
  // call openai api
  const response = await openai.createCompletion({
    model: revisedPrompt.config.model,
    prompt: revisedPrompt.text,
    temperature: revisedPrompt.config.temperature,
    max_tokens: revisedPrompt.config.max_tokens,
    top_p: 1.0,
    frequency_penalty: 0.0,
    presence_penalty: 0.0,
    stop: revisedPrompt.config.stop,
  });
  console.log("openai response", response.data);
  if (response.data.choices && response.data.choices.length > 0) {
    return response.data.choices[0].text;
  } else {
    return "I'm sorry, I don't understand.";
  }
};

function countBPETokens(text) {
  const encoded = tokenizer.encode(text);
  return encoded.bpe.length;
}

function leftTruncateTranscript(text, maxTokens) {
  const encoded = tokenizer.encode(text);
  const numTokens = encoded.bpe.length;
  const truncated = encoded.bpe.slice(numTokens - maxTokens);
  const decoded = tokenizer.decode(truncated);
  return decoded;
}

export default chatgpt;

最后,我们工程所使用的依赖包,如下所示:

"dependencies": {
    "@emotion/react": "^11.10.5",
    "@emotion/styled": "^11.10.5",
    "@mui/material": "^5.11.6",
    "@next/font": "13.1.6",
    "eslint": "8.32.0",
    "eslint-config-next": "13.1.6",
    "gpt3-tokenizer": "^1.1.5",
    "next": "13.1.6",
    "openai": "^3.2.1",
    "promptable": "^0.0.5",
    "react": "18.2.0",
    "react-dom": "18.2.0"
  }

在完成核心模块的后台逻辑编写后,可以访问Prompt后台,通过编写Prompt来获取ID,操作如下:

4.2 部署Prompt

完成Prompt编写后,我们就可以部署Prompt了,部署成功后会生成一个PromptID,如下图所示:

 这里,在部署Prompt里面有参考代码实现,具体如下:

import axiOS from 'axios'

// 这里面的xxxxxxx是部署Prompt自动生成的ID,这里我用xxxxxxx替换了
const { data } = await axios.get('https://promptable.ai/api/prompt/xxxxxxx/deployment/active')

const prompt = data.inputs?.reduce((acc, input) => {
  // Replace input.value with your value!
  return acc.replaceAll(`{{${input.name}}}, ${input.value}`)
}, data.text)

const res = await axios.get('Https://openai.com/v1/completions', {
  data: {
    // your prompt
    prompt,

    // your model configs from promptable
    config: {
      ...data.config,
      // add any other configs here
    }
  }
})

// Your completion!
console.log(res.data.choices[0].text)

最后,我们基于OpenAI最新的gpt-3.5-turbo模型,开发一个AI网站,效果如下:

 这里为了节省token费用,通过点击“停止对话”按钮暂时输出了。因为使用OpenAI的接口是按照token来算费用的,英文字母算一个token,一个汉字算两个token,收费明细如下:

5.总结

本文介绍了如何使用ChatGPT来实现一个AI网站。通过选择合适的Web开发框架、集成ChatGPT、创建用户界面、训练ChatGPT、测试和优化、部署到生产环境以及进行维护和升级等步骤,您可以构建一个功能强大的AI网站,并提供更好的用户体验和服务。

通过本文的介绍,读者可以了解如何使用ChatGPT搭建AI网站,为自己的网站增加智能化的功能。随着人工智能技术的不断发展,ChatGPT等聊天机器人将会越来越普及,成为网站开发的重要工具之一。

到此这篇关于如何使用ChatGPT搭建AI网站的文章就介绍到这了,更多相关ChatGPT搭建AI网站内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何使用ChatGPT搭建AI网站

本文链接: https://www.lsjlt.com/news/202144.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用ChatGPT搭建AI网站
    1.概述 ChatGPT是一款基于GPT-3.5架构的大型语言模型,它能够进行自然语言处理和生成对话等任务。作为一款智能化的聊天机器人,ChatGPT有着广泛的应用场景,如在线客服、...
    99+
    2023-05-13
    ChatGPT搭建AI网站 把ChatGPT部署到自己网站服务器 ChatGPT用1分钟搭建一个网站
  • 怎么使用ChatGPT搭建AI网站
    这篇文章主要介绍“怎么使用ChatGPT搭建AI网站”,在日常操作中,相信很多人在怎么使用ChatGPT搭建AI网站问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用ChatGPT搭建AI网站”的疑惑有所...
    99+
    2023-07-05
  • 如何使用vps搭建网站
    使用vps搭建网站的操作步骤:在开始菜单找到“Internet信息管理器”并打开。点击列表中本地计算机展开下拉菜单 → 右键“网站” → 新建网站。 输入网址描述,点击下一步。 填写网址相关信息,如:网站ip地址、tcp端口号,主机头等。(...
    99+
    2022-10-03
  • 如何使用ThinkPHP搭建网站
    这篇“如何使用ThinkPHP搭建网站”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用ThinkPHP搭建网站”文章吧...
    99+
    2023-07-05
  • 如何用ssm搭建网站
    用ssm搭建网站的操作步骤:一、准备安装包apache-tomcat-8.5.29.exejdk-8u73-windows-x64.exemysql-installer-web-community-5.7.25.0.msiSQL 文件:or...
    99+
    2022-10-04
  • 如何用weblogic搭建网站
    使用weblogic搭建网站的方法首先,在浏览器中输入http://localhost:7001/console ,进入weblogic控制台,启动weblogic服务;进入weblogic控制台后,点击点击左侧的“部署”选项;点击右侧点击...
    99+
    2022-10-21
  • 如何用django搭建网站
    用django搭建网站的操作方法:快捷键win+r,打开运行窗口,输入cmd。将当前目录定位到网站根目录,例如输入命令:cd /d d:\website再输入命令来创建站点即可,命令如:django-admin.py startprojec...
    99+
    2022-10-06
  • 如何使用bootstrap模板搭建网站
    利用bootstrap插件制作网页的方法首先,在官网下载好bootstrap文件,并解压;将解压好的bootstrap文件,剪切到网站项目根目录下;最后,在项目头部使用标签即可调用bootstrap;<link rel="s...
    99+
    2022-10-22
  • 如何使用dede快速搭建网站
    使用dede快速搭建网站的方法:安装xampp虚拟环境。打开xampp,运行Apache和MySQL。下载dedeCMS,进行解压。解压后将uploads中所有文件复制到XAMPP/htdocs文件中。打开浏览器,访问“localhost”...
    99+
    2022-10-19
  • 如何使用SAE和GitCafe搭建网站
    本篇内容主要讲解“如何使用SAE和GitCafe搭建网站”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用SAE和GitCafe搭建网站”吧!创建应用先是各种注册。新浪云需要使用新浪微博的帐...
    99+
    2023-06-10
  • upupw如何搭建网站
    upupw搭建网站的操作步骤:打开upupw.exe文件。输入“1”添加虚拟主机。输入网站名字,按回车。再输入域名,如“192.168.0.1”。选择输入程序的编程语言,如:PHP/ASP再输入网站放文件的目录。将准备好的网站源代码上传到网...
    99+
    2022-10-06
  • 网站如何搭建phpmyadmin
    这篇文章给大家分享的是有关网站如何搭建phpmyadmin的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。网站搭建phpmyadmin的方法:准备环境httpd php php-m...
    99+
    2022-10-18
  • phpwamp如何搭建网站
    phpwamp搭建网站的操作步骤:下载phpwamp程序。解压phpwamp。进入phpwamp文件夹,找到“PHPWAMP.exe”程序,右键“以管理员身份运行”。打开软件界面,点击启动wamp环境。启动成功,点击“网站根目录”,把你的网...
    99+
    2022-10-17
  • tomact如何搭建网站
    tomact利用webapps文件夹实现自动部署网站,具体方法如下:首先,进入tomcat根目录,在目录中查找到webapps文件夹;将网站源码剪切到webapps文件夹中;最后,在浏览器中输入“tomcat网址+网站源码的文件名”,即可打...
    99+
    2022-10-17
  • 如何使用虚拟主机搭建网站
    要使用虚拟主机搭建网站,您需要遵循以下步骤:1. 选择虚拟主机提供商:找到一个可靠的虚拟主机提供商,并选择适合您需求的虚拟主机计划。...
    99+
    2023-08-29
    虚拟主机
  • 如何在ftp站点搭建网站
    在ftp站点搭建网站的操作流程:借助FLASHFTP软件,下载安装并启动。点击“新建站点”。输入站点名称。填写FTP的IP地址、用户名及密码等信息。点击“连接”,连接到FTP服务器。将准备好的网站程序上传到web根目录下。通过浏览器查看即可...
    99+
    2022-10-20
  • phpstudy如何搭建ssl网站
    phpstudy搭建ssl网站的方法:打开服务器的phpstudy,点击“其他选项的扩展” → 选择“PHP扩展及设置” → “PHP扩展” → 选中“php_openssl”。再点击“其他选项的扩展” → 选择“打开配置文件” → 选中“...
    99+
    2022-10-10
  • 怎么使用PHP搭建网站
    本文小编为大家详细介绍“怎么使用PHP搭建网站”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用PHP搭建网站”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。确定您的需求:在开始搭建网站之前,您需要确定您的需...
    99+
    2023-07-05
  • 如何用云主机搭建网站
    要使用云主机搭建网站,你需要按照以下步骤进行操作:1. 选择云服务提供商:有许多云服务提供商可供选择,根据你的需求和预算选择一个合适...
    99+
    2023-09-21
    云主机
  • 如何用php和mysql搭建网站
    要使用PHP和MySQL搭建一个网站,你需要按照以下步骤进行操作: 安装PHP和MySQL:首先,你需要在你的服务器或本地机器上...
    99+
    2023-10-25
    php mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作