OpenAIApiを使って簡易的chatGPTみたいなのを作ってみた

てきとうにいろいろ

OpenAIApiを使って、簡易的chatGPTみたいなのを作ってみた。

import React, { useState, useEffect } from "react";
import { Configuration, OpenAIApi } from "openai";

import { TextField } from "../components/mui/TextField";

const OpenAITest = () => {
  const [question, setQuestion] = useState("");
  const [response, setResponse] = useState<string | undefined>("");

  const [composition, setComposition] = React.useState(false);

  const keyPress = async (e: React.KeyboardEvent<HTMLDivElement>) => {
    if (!composition && e.code === "Enter") {
      setComposition(false);

      const configuration = new Configuration({
        organization: process.env.REACT_APP_ORGANIZATION,
        apiKey: process.env.REACT_APP_OPENAI_API_KEY,
      });
      const openai = new OpenAIApi(configuration);
      const completion = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: question,
        max_tokens: 100,
        temperature: 0.5,
      });
      setResponse(completion.data.choices[0].text);
    }
  };

  return (
    <div
      style={{
        textAlign: "center",
        margin: "auto",
        marginTop: 20,
        width: "70%",
      }}
    >
      <TextField
        fullWidth
        onChange={(e) => {
          setQuestion(e.target.value);
        }}
        onKeyDown={(e) => keyPress(e)}
        onCompositionStart={() => setComposition(true)}
        onCompositionEnd={() => setComposition(false)}
      >
        {question}
      </TextField>
      <div style={{ fontSize: 16, marginTop: 20 }}>{response}</div>
    </div>
  );
};

export default OpenAITest;

今回の場合は、テキストフィールドに問い合わせ内容を入れて、ENTERを押したら答えが返ってくるようになってます。

API_KEYってのは、登録してここから発行すると取得できる。
「Create new secret key」を押すとAPI_KEYが発行されます。

わりと簡単に作れて楽しかった。
が、Refused to set unsafe header “User-Agent”という警告が出てる。
これの修正方法がよく分からぬ。。。

Follow me!

PAGE TOP
タイトルとURLをコピーしました