Java에서 첫 AI 클라이언트 만들기 (Cerebras AI)
Source: Dev.to

이 튜토리얼에서는 Java로 매우 간단한 AI 채팅 클라이언트를 만드는 방법을 배웁니다. 무료 티어와 속도 때문에 여기서는 Cerebras AI를 사용할 것입니다. 동일한 원리는 OpenAI (ChatGPT), Claude, Gemini와 같은 다른 AI 제공업체에도 적용되며, API 엔드포인트와 모델 이름만 조정하면 됩니다.
동영상이 더 좋으신가요? 위의 YouTube에서 전체 튜토리얼을 시청할 수 있습니다.
What You’ll Need
- Java 11 이상 (우리는 최신
HttpClientAPI를 사용할 것입니다) - Cerebras AI API 키
- 좋아하는 IDE 또는 텍스트 편집기
단계 1: Cerebras API 키 받기
- Cerebras AI 웹사이트를 방문하고 계정을 등록하세요.
- API 섹션 또는 개발자 대시보드로 이동합니다.
- 새 API 키를 생성합니다.
- 키를 복사하세요—다음 단계에서 필요합니다.
⚠️ 보안 팁: API 키를 비밀로 유지하고 절대 버전 관리에 커밋하지 마세요!
단계 2: API 키를 환경 변수로 설정하기
키를 환경 변수에 저장하면 소스 코드에 포함되지 않으며 프로그램을 이식성 있게 만들 수 있습니다.
Windows에서
SETX CEREBRAS_API_KEY "your-api-key-here"
your-api-key-here를 실제 키로 교체하세요.
변경 사항이 적용되도록 IDE 또는 터미널을 재시작하세요.
macOS / Linux에서
~/.bashrc, ~/.zshrc, 또는 ~/.bash_profile에 다음 줄을 추가하세요:
export CEREBRAS_API_KEY="your-api-key-here"
그런 다음 설정을 다시 로드합니다:
source ~/.bashrc # or source ~/.zshrc
Step 3: Java 프로젝트 만들기
새 파일을 AIChat.java 라는 이름으로 만들고 아래 코드를 붙여넣으세요.
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class AIChat {
public static void main(String[] args) throws IOException, InterruptedException {
String apiKey = System.getenv("CEREBRAS_API_KEY");
String requestBody = """
{
"model": "llama3.1-8b",
"messages": [
{"role": "user", "content": "How to win a lotto?"}
],
"temperature": 0.2
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.cerebras.ai/v1/chat/completions"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + apiKey)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
코드 이해하기
1. API 키 읽기
String apiKey = System.getenv("CEREBRAS_API_KEY");
이전에 설정한 환경 변수에서 키를 가져옵니다.
2. 요청 본문 만들기
String requestBody = """
{
"model": "llama3.1-8b",
"messages": [
{"role": "user", "content": "How to win a lotto?"}
],
"temperature": 0.2
}
""";
model– 사용할 AI 모델 (Cerebras는 여러 Llama 변형을 제공합니다).messages– 메시지 객체(role와content)의 배열.temperature– 무작위성을 제어합니다 (0.0= 결정적,1.0= 창의적).
3. HTTP 요청 생성
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.cerebras.ai/v1/chat/completions"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + apiKey)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
엔드포인트, 콘텐츠‑타입, 인증 헤더, 그리고 JSON 페이로드를 설정합니다.
4. 요청 전송
HttpClient client = HttpClient.newHttpClient();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
HTTP 클라이언트를 생성하고, 요청을 전송한 뒤 원시 JSON 응답을 출력합니다.
단계 4: 애플리케이션 실행
javac AIChat.java
java AIChat
AI의 답변이 포함된 JSON 응답을 확인할 수 있습니다.
JSON 응답 파싱
원시 JSON은 사용자에게 친숙하지 않습니다. 아래는 AI의 메시지만 추출하는 간단하고 투박한 방법입니다. 실제 코드에서는 Gson이나 Jackson과 같은 적절한 JSON 라이브러리를 사용하는 것을 고려하세요.
// Add this method inside the AIChat class
private static String extractContent(String jsonResponse) {
int start = jsonResponse.indexOf("\"content\":\"") + 11;
int end = jsonResponse.indexOf("\"", start);
return jsonResponse.substring(start, end);
}
그 다음 최종 System.out.println(response.body()); 를 다음과 같이 교체할 수 있습니다:
String content = extractContent(response.body());
System.out.println("AI says: " + content);
🎉 이제 끝!
이제 Cerebras AI(또는 호환 가능한 제공자)와 통신하는 최소 Java 클라이언트를 갖게 되었습니다. 프로그램을 자유롭게 확장해 보세요—연속 채팅을 위한 루프를 추가하거나, UI를 통합하거나, 다른 모델로 교체할 수 있습니다. 즐거운 코딩 되세요!
다른 AI 공급자에 맞추기
다른 AI 공급자를 사용하고 싶으신가요? 변경해야 할 사항은 다음과 같습니다:
OpenAI (ChatGPT)
- Endpoint:
https://api.openai.com/v1/chat/completions - Model:
gpt-4또는gpt-3.5-turbo - API‑Key environment variable:
OPENAI_API_KEY
Anthropic (Claude)
- Endpoint:
https://api.anthropic.com/v1/messages - Model:
claude-sonnet-4-5-20250929 - Headers:
Authorization대신x-api-key를 사용하세요anthropic-version: 2023-06-01을 추가하세요
Google (Gemini)
- Endpoint:
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent - Note: 요청 형식이 다릅니다 – 자세한 내용은 Google 문서를 참고하세요.
다음 단계
- 사용자 입력을 추가하여 인터랙티브하게 만들기.
messages배열을 유지하여 대화 기록을 구현하기.- 네트워크 문제 및 API 오류에 대한 오류 처리를 추가하기.
- Gson 또는 Jackson을 사용하여 JSON 응답을 올바르게 파싱하기.
- 명령줄 채팅 인터페이스 만들기.
- 다양한 모델 및 온도 설정을 실험하기.
결론
축하합니다 – Java에서 첫 AI 클라이언트를 성공적으로 구축했습니다! 🎉
이 간단한 예제는 어떤 AI 제공자를 선택하든 사용하게 될 핵심 개념을 보여줍니다. 주요 요점은 다음과 같습니다:
- HTTP 요청 이해하기.
- JSON 페이로드 포맷팅.
- 안전한 API‑키 관리.
코딩을 즐기시고, AI 통합의 세계를 탐험해 보세요!
저자 소개
Deividas Strole – 캘리포니아에 거주하는 풀스택 개발자로, Java, Spring Boot, React, 그리고 AI 기반 개발을 전문으로 합니다. 소프트웨어 엔지니어링, 최신 풀스택 개발, 디지털 마케팅 전략에 관한 글을 씁니다.
저와 연결하기:
- Personal website:
- LinkedIn:
- GitHub:
- YouTube:
- Academia:
- X (Twitter):
