일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 웹개발
- 데이터과학
- 소프트웨어
- 클라우드컴퓨팅
- I'm Sorry
- 보안
- 네트워크보안
- 프로그래밍
- 프로그래밍언어
- 딥러닝
- 컴퓨터공학
- 데이터베이스
- 코딩
- 버전관리
- 컴퓨터비전
- 사이버보안
- Yes
- 소프트웨어공학
- 알고리즘
- 네트워크
- 자바스크립트
- 데이터구조
- 파이썬
- 인공지능
- 데이터분석
- 컴퓨터과학
- 빅데이터
- 2
- 머신러닝
- 자료구조
- Today
- Total
스택큐힙리스트
OpenAI API가 "User-Agent"가 안전하지 않은 헤더로 설정되지 않도록 거부되었습니다. 본문
왜 이 오류가 발생하는지 이해가 안 됩니다.
User-Agent 헤더를 설정하지 않도록 거절되었습니다.
저는 개인 프로젝트에 OpenAI API를 사용하려고 노력하고 있습니다. 이 위험한 헤더를 설정하지 못하는 이유와 앱을 안전하게 만들 수 있는 방법이 있는지 이해하지 못합니다. 이 문제에 대해 구글링 해 보았지만, 상위 링크는 크롬의 문제일 수 있다는 깃허브 포럼이며, 사파리에서 앱을 사용하려고 해도 작동하지 않습니다.
const onFormSubmit = (e) => {
e.preventDefault();
const formData = new FormData(e.target),
formDataObj = Object.fromEntries(formData.entries())
console.log(formDataObj.foodDescription);
//////OPENAI
const configuration = new Configuration({
apiKey: process.env.REACT_APP_OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
openai.createCompletion(text-curie-001, {
prompt: `generate food suggestions from the following flavor cravings: ${formDataObj.foodDescription}`,
temperature: 0.8,
max_tokens: 256,
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0,
})
.then((response) => {
setState({
heading: `AI Food Suggestions for: ${formDataObj.foodDescription}`,
response: `${response.data.choices[0].text}`
});
})
} (This is already in English and doesn't need translation.)
답변 1
당신이 말한 대로, openai API 클라이언트가 Refused to set unsafe header User-Agent 오류가 발생한 것입니다. 이는 민감한 정보(API 키)에 대한 액세스가 필요하기 때문에, 노드 JS 클라이언트는 실수적으로 비밀을 누설하는 것을 방지하기 위해 크로스 오리진 요청을 의도적으로 제한합니다.
해결책으로, AmanKishore가 수동으로 완료 요청을 요청하는 https://github.com/openai/openai-node/issues/6을(를) 참조하십시오.
나는 결국 다음과 같은 방식으로 내 자신의 완성 함수를 작성하게 되었다:
const DEFAULT_PARAMS = {
model: text-davinci-002,
temperature: 0.7,
max_tokens: 256,
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0
}
export async function query(params = {}) {
const params_ = { ...DEFAULT_PARAMS, ...params };
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + String(openai_api_key)
},
body: JSON.stringify(params_)
};
const response = await fetch('https://api.openai.com/v1/completions', requestOptions);
const data = await response.json();
return data.choices[0].text;
}
답변 2
OpenAI API가 User-Agent 헤더를 설정하지 않았다는 것이 발견되어, 이에 대한 논란이 일어났습니다. 이러한 상황은 OpenAI API에서 요청하는 Header에 대한 검증과 보안과 같은 이유로 발생할 수 있는 일입니다.하지만 이러한 상황은 SEO를 향상시키는 데 상당한 영향을 끼칠 수 있습니다. SEO(검색 엔진 최적화)란 검색 엔진에서 사이트가 더 잘 검색되도록 하는 것을 의미합니다. 따라서 여러 요소, 예를 들어 제목, 본문, URL, 이미지 등이 SEO에 영향을 미칩니다.
그러므로 OpenAI API에서 Header를 설정하지 않는다면, 해당 사이트의 SEO가 큰 영향을 받을 수 있습니다. 여기서 User-Agent 헤더는 검색 엔진으로부터 요청 속도 및 페이지 크롤링 용이성 등 SEO에 중요한 역할을 합니다. 따라서 이러한 Header가 설정되지 않으면 검색 엔진은 해당 페이지를 더 나쁘게 평가하고, 검색 결과에서 제외될 가능성이 높아집니다.
결론적으로, OpenAI API는 보안을 위해서는 헤더 설정에 대해 강력한 검증을 수행해야 하지만, SEO를 향상시키기 위해서는 검색 엔진에서 필수적인 User-Agent 헤더를 반드시 설정해야 합니다. 그렇게 하면 OpenAI API의 성능이 향상되어, 광범위한 사용자들에게 더 좋은 경험을 제공할 수 있을 것입니다.