AI API 서버 구조도

위 구조는 app.py를 중심으로 각 구성 요소가 연결되는 방식이다. 각 구성 요소는 다음과 같은 역할을 수행한다.
- app.py: 전형적인 REST API 서버의 컨트롤러 역할을 하며, 클라이언트의 코드 최적화 요청을 받아 처리한다. 클라이언트에서 전달된 코드를 Optimizator 서비스로 전달하여 최적화된 코드를 받아 반환한다.
- Optimizator: 코드 최적화 로직의 핵심 서비스 계층이다. OpenAI API와 통신하여 코드 리팩터링을 요청하고, 최적화된 코드를 응답받아 클라이언트에 제공한다.
- OpenAI API: AI 모델을 활용하여 코드 최적화 요청을 처리하는 외부 서비스이다. Optimizator는 프롬프트를 통해 최적화 요청을 전송하며, OpenAI의 응답을 통해 최적화된 코드와 제안 사항을 받는다.
이 구조는 Optimizator에서 AI를 활용해 코드 최적화 로직을 처리할 수 있도록 설계되어 있으며, 확장성 및 유지보수성에 유리하다. 추가적인 최적화 옵션이나 AI 모델을 지원하려면 Optimizator 서비스에서 요청 로직을 확장하거나 다른 프롬프트 형식을 추가하여 쉽게 기능을 확장할 수 있다.
AI-API 서비스 상세 내용
1. Optimizator
Optimizator 클래스는 OpenAI API를 활용하여 코드 최적화를 수행하는 핵심 서비스 계층으로, 클라이언트가 요청한 코드에 대해 성능을 개선하고 메모리 효율성을 높이는 방식으로 리팩터링을 제공한다. 주요 메서드는 다음과 같다.
1.1 __init__
- 기능: 환경 변수를 로드하여 OpenAI API 클라이언트를 초기화한다.
- 구현:
- .env 파일에서 API 키를 로드하고, OpenAI 클라이언트를 생성하여 self.client에 저장한다.
- 기본 경로에서 .env 파일을 불러올 수 없을 경우, /config/.env 경로에서 다시 시도하여 API 키를 불러온다.
1.2 optimize_code
- 기능: OpenAI API에 코드 최적화 요청을 전송하고, 최적화된 코드 결과를 반환한다.
- 구현:
- code_snippet 매개변수로 전달된 코드를 최적화하기 위해, GPT-3.5 모델에 프롬프트를 전송한다.
- 프롬프트에서는 AI 모델에게 코드의 시간 및 메모리 효율성을 높이도록 요청하며, 한국어 주석을 통해 변경 사항을 설명하도록 지시한다.
- OpenAI API의 응답으로 최적화된 코드 결과를 받아 반환한다.
이 클래스는 AI를 활용하여 클라이언트가 작성한 코드의 성능을 개선하고 최적화된 결과를 제공하는 역할을 수행한다. optimize_code 메서드는 OpenAI API와의 상호작용을 통해 클라이언트의 코드를 자동으로 리팩터링하며, 시간과 메모리 효율성을 최우선으로 개선하는 데 중점을 둔다.
'Web > 코테 준비용 서비스 만들기' 카테고리의 다른 글
07. API Gateway 서버 제작 (2) (1) | 2024.11.11 |
---|---|
06. API Gateway 서버 제작 (1) (0) | 2024.11.10 |
04. 코드 API 서버 제작 (1) | 2024.11.08 |
03. 스크래핑 API 서버 제작 (0) | 2024.11.07 |
02. 서비스를 구상해보자! (3) | 2024.10.29 |