[Node.js_4기] 최종 프로젝트 3주차_day4 (24/04/11)

2024. 4. 12. 09:35카테고리 없음

목차

 

1. 문제

2. 시도

3. 결과

4. 배운점

 

1. 문제 

 

이전에도 계속 언급했던 처리량 제한 문제를 해결하기위해 검색을 계속하던 도중 Rapid API라는 것을 발견했다.

 

여러 유무료의 API를 제공하는 API장터 같은 사이트로, 여기서 무료 API를 골라 사용하면 제한량이 될 때 마다 다른 계정으로 갈아치우든 하면 해결할 수 있지 않을까. 라는 생각으로 사용해보았다.

 

 

 

 

 

 

2. 시도 

 

원래 openai API를 번역에 사용했었는다.

이걸 일단 google translate api(free)를 사용해서 대체해 보았다.

public async translateText2({ lang, prompt }: TranslateDto): Promise<string> {
    const encodedParams = new URLSearchParams();
    encodedParams.append('from', 'en');
    encodedParams.append('to', lang);
    encodedParams.append('text', prompt);

    const options = {
      method: 'POST',
      url: 'https://google-translate113.p.rapidapi.com/api/v1/translator/text',
      headers: {
        'content-type': 'application/x-www-form-urlencoded',
        'X-RapidAPI-Key': process.env.RAPIDAPI_KEY, 
        'X-RapidAPI-Host': 'google-translate113.p.rapidapi.com',
      },
      data: encodedParams,
    };

    try {
      const response = await firstValueFrom(this.httpService.request(options));
      return response.data;
    } catch (error) {
      console.error('Error in translation:', error);
      throw error;
    }
  }

대부분의 api는 위와같은 형태로 사용할 수 있다. openai API와 달리 따로 api 사용을 공부할 필요가 없다는 점이 편했다.

 

3. 결과 

 

큰 발전은 없었지만, 약 300ms정도의 시간 이득을 보고, gpt를 사용한 번역의 경우 다른 text api와 같은 모델을 사용하여 사용량이 겹치기 토큰 제한량에 영향을 줄 수 있다. 

 

4. 배운점 

 

Rapid API를 사용하여 다양한 API중 하나를 취사 선택하여 내가 원하는 서비스를 개발할 수 있다는 것.

image recognition쪽 api도 다양하게 많아서 이쪽도 gpt4대신 사용하는 방법을 생각해볼 생각이다.