It is posibble to save chat just like chatGPT does? #49

i faced same issue on this api with same test case …so i need your help and how can i implement that?

i use this api https://api.openai.com/v1/completions

this is my code

import React, { useState } from ‘react’;
import { Container, Col, Button, Row, Form, FormControl, Spinner } from ‘react-bootstrap’;
import { Configuration } from “openai”;

const PARAMS = {
model: “text-davinci-003”,
temperature: 0.7,
max_tokens: 256,
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0,

}

const configuration = new Configuration({
apiKey: process.env.REACT_APP_URL
})

const App = () => {
// const [state, setState] = useState(JSON.parse(localStorage.getItem(‘question’)))
const [questionType, setQuestionType] = useState(‘general’);
const [cbResponse, setcbResponse] = useState(‘’);
const [userInput, setUserInput] = useState(‘’);
const [isLoading, setIsLoading] = useState(false);
const getInstructions = (qt, input) => {
let prompt;
switch (qt) {
case ‘general’:
prompt = input;
break;
case ‘healthCare’:
prompt = if the question healthCare is realated to -answer it :${input},else say:can not answer it.;
break;
case ‘weather’:
prompt = if the question is weather realated to -answer it :${input},else say:can not answer it.;
break;
case ‘sports’:
prompt = if the question is sports realated to -answer it :${input},else say:can not answer it.;
break;
case ‘entertainment’:
prompt = if the question is entertainment realated to -answer it :${input},else say:can not answer it.;
break;
default:
prompt = input
}
return prompt

}

const handleSendData = async (e) => {
e.preventDefault()

setIsLoading(true)
const prompt = getInstructions(questionType, userInput)
const endpoint = `https://api.openai.com/v1/completions`;
const body = { ...PARAMS, prompt };
const response = await fetch(endpoint, {
  method: 'POST',
  headers: {
    "content-type": "application/json;charset=utf-8",
    Authorization: `Bearer ${configuration.apiKey}`,

  },
  body: JSON.stringify(body)

})

const data = await response.json()
setcbResponse(data.choices[0].text)
// console.log("data", data.choices[0].text)
var ans = [{
  question: userInput,
  ans: data?.choices[0].text
}];
const state = JSON.parse(localStorage.getItem('question'))
// console.log("state", state);
if (state === null) {
  localStorage.setItem('question', JSON.stringify([...ans]));

} else {
  localStorage.setItem('question', JSON.stringify([...state, ...ans]));

}



setIsLoading(false)

}

return (

<Container>

  <Row className="pt-4">
    {['healthCare', 'general', 'weather', 'sports', 'entertainment'].map(el => {
      return (
        <Col key={el}>
          <Button variant="primary" onClick={() => setQuestionType(el)}>{el}</Button>
        </Col>
      )
    })}
  </Row>
  <h3 className='my-3'> Question Type: <b>{questionType}</b></h3>
  <Form onSubmit={handleSendData}>
    <FormControl type="text"
      value={userInput}
      onChange={e => setUserInput(e.target.value)}
    />
    <Button variant='info' type="submit" className='mt-3'>Submit</Button>

  </Form>
  <div className="mt-4">
    {
      isLoading ?
        <Spinner />
        : cbResponse ? cbResponse : "no questions asked"
    }
  </div>
</Container>

)
}

export default App

New to this myself but I think a problem you’ve got there is the completions api. https://api.openai.com/v1/completions

Both the completions api and the chat api take a string array as the message inputs. If you send 5 strings to the chat api it reads it as a conversation 5 turns long and responds once to it all. If you send 5 to the completions api It seems to take each one as the beginning of 5 separate requests and returns 5 separate responses.

I think you need to be using https://api.openai.com/v1/chat/completions

this api is not working yet i faced this type of error… is there any other solution?

400 error is a bad request. I’d start checking the JSON request is formatted properly.

Can you please explain fully, what you did to maintain context, save chat history, minimizing tokens per conversation…

It’s 2026. How is this going? I just need something like chatgpt .com (save conversation, memory context,…) but with api call (platform .openai) instead!

Hey, it’s 2026 and you can use OpenAI API for managing the conversation state.

1 Like