애플리케이션 API 연동
애플리케이션의 모듈과 버전을 실제 AI 서비스 API에 연결하고, 멀티턴 대화와 응답 매핑, 토큰 사용량·비용을 설정하는 방법을 안내합니다.
시작하기 전에
①연동하면 할 수 있는 일
연동을 마치면 평가, 레드티밍, 모니터링이 서비스 API를 직접 호출합니다. 그래서 평가, 공격, 관찰 작업을 실행할 수 있습니다. 먼저 애플리케이션 생성을 마칩니다.
연동은 설정 > 애플리케이션 > Agent Connection에서 합니다. 왼쪽 메뉴 아래쪽의 애플리케이션 설정을 클릭하면 열립니다. 화면 구성은 애플리케이션 생성의 에이전트 Connection 화면을 참고하세요.
②연동 순서
연동은 아래 순서로 합니다. 1단계에서 정한 키 구조가 이후 모든 단계의 기준이 됩니다.
| 단계 | 내용 |
|---|---|
| 1. 모듈 세팅 | 평가할 모듈의 입력 키와 출력 키를 정합니다. |
| 2. 버전 세팅 | Before와 After를 비교할 버전을 등록합니다. |
| 3. 버전별 API 연동 | 버전마다 API 주소와 보낼 내용을 넣고 테스트합니다. |
| 4. 멀티턴 API 연동 | 챗봇처럼 이전 대화를 함께 보내는 API만 설정합니다. |
| 5. 출력 키 매핑 | 응답에서 평가할 값을 고르고, 필요하면 비용 계산을 설정합니다. |
1. 모듈 세팅
모듈은 애플리케이션의 기능 단위입니다. 평가할 기능에 맞는 모듈 유형을 고릅니다. 모듈마다 다음 키가 있습니다.
| 키 | 의미 |
|---|---|
입력 키 | 모듈에 전달되는 입력 |
출력 키 | 모듈을 실행한 뒤 생성되는 출력 |
①1-1. 모듈 생성
-
+ 새 모듈을 클릭합니다. -
모듈 유형을 선택합니다. 여러 모듈 유형을 선택할 수 있습니다.
-
추가를 클릭합니다.
②1-2. 모듈 수정
-
모듈 오른쪽 위의 수정(연필) 아이콘을 클릭합니다.
-
모듈 이름과 입력 키, 출력 키를 수정합니다.
-
필요하면 키를 추가합니다.
| 버튼 | 동작 |
|---|---|
+Add Input Key | 입력 키를 추가합니다. |
+Add Output Key | 출력 키를 추가합니다. |
입력 키나 출력 키를 하나라도 수정하면 이 애플리케이션의 모든 버전 세팅을 처음부터 다시 해야 합니다.
③1-3. 모듈 삭제
-
삭제버튼을 클릭합니다. -
입력란에
삭제를 입력합니다.삭제버튼이 활성화됩니다. -
삭제를 클릭합니다. 모듈이 삭제됩니다.
1-1Module 확인
- Agent Connection의
Module List에서 Module과 Key를 확인합니다.
- Agent Connection의
1-2Module 추가 · 수정
+ New Module로 추가합니다.- Module 카드의 수정 버튼으로 이름과 Key를 바꿉니다.
Save를 클릭합니다.
Key를 하나라도 수정하면 이 Module의 모든 Version 세팅을 다시 해야 합니다.
1-3Module 삭제
- 수정 창의
Delete를 클릭합니다.
- 수정 창의
2. 버전 세팅
하나의 애플리케이션에 여러 버전을 둘 수 있습니다. 프롬프트, 모델, 검색 방식이 바뀔 때마다 새 버전을 등록합니다. 그러면 같은 평가 기준으로 Before와 After를 비교할 수 있습니다.
버전을 만드는 방법은 애플리케이션 생성의 버전 생성 단계를 따릅니다. 애플리케이션 버전과 모듈 버전 모두 아래 3~5단계를 같은 방법으로 설정합니다.
버전 운영 팁
- 변경 하나에 버전 하나: 여러 요소를 한꺼번에 바꾸면 어떤 변경이 점수에 영향을 줬는지 알 수 없습니다.
- 이름 규칙 통일: 버전 이름 규칙을 미리 정해 두면 대시보드에서 시간 흐름에 따라 비교하기 쉽습니다.
- 삭제 대신 비활성화: 실패한 버전은 비활성화해 남겨 둡니다. 나중에 같은 문제가 다시 생기는지 확인하거나 결과를 재현할 때 씁니다.
3. 버전별 API 연동
평가, 공격, 관찰을 실행하려면 버전마다 호출할 수 있는 API를 연결해야 합니다. API 주소는 버전마다 따로 둘 수 있습니다. 그래서 같은 평가 셋을 여러 환경에 한 번에 적용할 수 있습니다(예: staging, production, 새 모델).
①3-1. 연동 정보 입력
- 버전 행에서
API 연동을 클릭합니다. - 아래 정보를 입력합니다.
| 항목 | 입력 내용 |
|---|---|
API 주소 | 호출할 API 주소 |
방법 | 요청 방식. 보통 기본값 POST를 그대로 씁니다. |
Request Header | 인증 키 같은 헤더. Content-Type: application/json은 미리 들어 있습니다. |
Request Parameter | URL 뒤에 붙일 값. 필요할 때만 넣습니다. |
Request Body | 보낼 내용(JSON). 3-2에서 설명합니다. |
Authorization, x-api-key 같은 API 키는 저장하면 sk-****6789처럼 가려집니다. 평가할 때는 원래 값이 쓰입니다. 키를 바꾸려면 가려진 칸을 클릭해 새 값을 넣습니다.
②3-2. Request Body 작성
- 요청 본문을 JSON으로 작성합니다.
- 1단계에서 정한 입력 키를
{{key_name}}형식으로 넣습니다. 평가할 때 벤치마크셋의 실제 값으로 바뀝니다.
{
"model": "gpt-4o",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "{{user_query}}" }
],
"temperature": 0.2
}
위 예시에서 {{user_query}}는 실행할 때 각 Benchmark 행의 user_query 값으로 바뀝니다.
창 아래 Required variables에 있는 변수만 쓸 수 있고, 모두 한 번 이상 써야 합니다. 이름은 입력 키와 정확히 같아야 합니다.
③3-3. 연결 테스트
- 오른쪽
연결 테스트에 변수마다 예시 값을 넣습니다. 연결 테스트를 클릭합니다.- 응답이 제대로 오는지 확인합니다.
인증 오류나 형식 오류를 여기서 미리 찾으면 평가 중에 대량으로 실패하는 일을 막을 수 있습니다.
④3-4. 저장
| 버튼 | 언제 쓰나요 |
|---|---|
임시 저장 | 아직 다 못 했을 때 지금까지 입력한 것을 임시로 저장합니다. |
출력 매핑 바로가기 | 다 입력했으면 다음 단계(5. 출력 키 매핑)로 넘어갑니다. |
저장하지 않고 창을 닫으면 저장할지 묻는 창이 뜹니다.
3-1연동 창 열기
- Version 행의 빨간
API Integration을 클릭하면Set up Version창이 열립니다. Version Name을 확인합니다.
- Version 행의 빨간
3-2URL과 Method
URL에 호출할 API 주소를 넣습니다.Method를 고릅니다. 보통POST입니다.
주소가 비었거나 형식이 틀리면 빨간 안내가 나옵니다.
3-3Request 설정
- 안내 상자에서 이 Application의 입력 변수를 확인합니다.
- 필요하면
Request Header에 인증 키를 넣습니다. Request Body에 변수를{{key_name}}형식으로 넣습니다.
창 아래
Required variables를 모두 한 번 이상 써야 합니다.3-4연결 테스트
- 오른쪽
Test Connection에 변수마다 예시 값을 넣습니다. Test Connection을 클릭하고 응답을 확인합니다.
- 오른쪽
3-5저장
- 아직 다 못 했으면
Save Draft를 클릭합니다. - 다 입력했으면
Go to Output Mapping을 클릭합니다.
- 아직 다 못 했으면
4. 멀티턴 API 연동
챗봇처럼 이전 대화를 함께 보내야 하는 API는 멀티턴을 켜고 연동합니다. 질문 하나만 보내는 API라면 이 단계를 건너뜁니다.
①4-1. 멀티턴 켜기
- API 연동 창 왼쪽의
멀티턴토글을 켭니다. - Request Body에 아래 기본 예시가 채워집니다.
{
"messages": [
...{{chat_history}},
{ "role": "user", "content": "" }
]
}
...{{chat_history}}자리에 이전 대화가 들어갑니다. Request Body에 꼭 한 번 넣어야 합니다.- 그 바로 다음 객체가 이번 턴에 보내는 질문입니다.
"content"는 비어 있습니다. 4-2에서 입력 변수를 고르면"{{query}}"처럼 채워집니다.
멀티턴은 Request를 1개만 씁니다. Request 2 이상을 만들어 둔 상태에서 켜면 Request 2부터는 지워집니다.
②4-2. 턴 정의 설정
턴 정의에서 이전 대화 한 턴을 어떤 값으로 채울지 정합니다. 기본 예시를 쓰면 {{content}} 행의 두 칸만 채우면 됩니다.
| 항목 | 사용자 턴 (사용자 말) | 어시스턴트 턴 (에이전트 답) |
|---|---|---|
{{role}} | user (자동 입력) | assistant (자동 입력) |
{{content}} | 입력 변수를 선택 (예: {{query}}) | 응답에서 답변이 있는 경로를 입력 (예: result.answer) |
{{content}}행의사용자 턴에서 입력 변수(예:{{query}})를 고릅니다.- 같은 행의
어시스턴트 턴에 에이전트 답변이 있는 경로를 입력합니다. 경로를 모르면응답에서 선택을 누르고 응답에서 답변을 골라선택을 클릭합니다. - 필드가 더 필요하면
+ 변수 추가로 추가합니다. Request Body에도 자동으로 들어갑니다.
빈칸이 하나라도 있으면 다음 단계로 넘어갈 수 없습니다.
③4-3. 두 턴 연결 테스트
멀티턴의 연결 테스트에는 Turn 1, Turn 2 칸이 있습니다.
Turn 1에 첫 질문,Turn 2에 이어지는 질문을 넣습니다.
(예:제 이름은 다투모예요.→제 이름이 뭐였죠?)연결 테스트를 클릭합니다.- 턴 2 응답이 턴 1 내용을 기억하는지 확인합니다.
두 턴이 모두 성공해야 테스트를 마친 것으로 봅니다. 실패한 턴은 결과에 마우스를 올려 재시도 아이콘으로 다시 실행합니다.
4-1Multi-turn 켜기
Multi-turn토글을 켭니다. Request Body에...{{chat_history}}기본 예시가 채워집니다.Turn Definition에서 이전 대화 한 턴을 채울 값을 정합니다.
Multi-turn에서는 API Chaining을 쓸 수 없습니다.
5. 출력 키 매핑
API 응답에서 어떤 값을 평가할지 알려 주는 단계입니다. 출력 매핑 바로가기를 누르면 창이 열립니다.
①5-1. 응답 경로 입력
- 출력 키마다 응답 안의 경로를 입력합니다. 경로를 모르면
응답에서 선택으로 응답에서 값을 골라 채웁니다.
| 출력 키 | 경로 예시 |
|---|---|
answer | response_1.choices[0].message.content |
retrieved_docs | response_1.context.documents |
- 경로 아래
Extracted Value에 나온 값이 맞는지 확인합니다. 저장을 클릭합니다.
- 경로가 틀리면 빨간 안내가 나오고 저장할 수 없습니다.
- 연결 테스트를 하지 않았으면 저장할 때 테스트할지 묻습니다.
잘못 매핑된 키는 모든 평가 결과를 흐립니다. 점수가 왜 바뀌었는지 추적할 수 없게 됩니다.
②5-2. 토큰 사용량과 비용 (선택)
비용을 보고 싶을 때만 설정합니다. 설정하면 평가 리포트의 사용량 탭과 에이전트 시뮬레이션에서 비용이 보입니다.
- 같은 창 아래
Token Usage & Cost에서입력 토큰,출력 토큰경로를 입력합니다.응답에서 선택으로 골라도 됩니다. 입력 토큰 비용 ($),출력 토큰 비용 ($)에 100만 토큰당 가격을 입력합니다.- 아래 상자에 예상 비용이 나오면
저장을 클릭합니다.
자주 쓰는 토큰 경로는 아래와 같습니다.
| 제공사 | 입력 토큰 | 출력 토큰 |
|---|---|---|
| OpenAI, vLLM, Ollama(OpenAI 호환) | usage.prompt_tokens | usage.completion_tokens |
| Anthropic, OpenAI Responses | usage.input_tokens | usage.output_tokens |
| Gemini | usageMetadata.promptTokenCount | usageMetadata.candidatesTokenCount |
- 나중에 설정하려면 버전 행의
설정 바로가기를, 고치려면토큰 설정 수정을 누릅니다. - 이미 실행한 평가의 비용은 평가 리포트에서 설정하면 다시 계산됩니다. 평가 리포트를 참고하세요.
5-1응답 경로 입력
- 왼쪽에서
Test Connection을 실행해 응답을 받습니다. - Output Key마다
Pick from response를 클릭합니다. - 응답에서 값을 찾아
Select를 클릭합니다. Extracted Value로 값을 확인합니다.
경로가 틀리면 빨간 안내가 나오고 저장할 수 없습니다.
- 왼쪽에서
5-2토큰 사용량과 비용 (선택)
Input Tokens,Output Tokens경로를 입력합니다.- 100만 토큰당 단가를 입력하고 예상 비용을 확인합니다.
5-3저장
Save를 클릭합니다. Version이Ready상태가 됩니다.
6. 포털에서 모델 · 에이전트 불러오기 (Enterprise)
사내 모델 포털을 연결한 Enterprise 조직은 API를 직접 입력하지 않고 포털에 등록된 모델이나 에이전트를 불러와 버전을 만들 수 있습니다. + New Version을 누르면 연결 방식을 고르는 버전 설정 창이 먼저 열립니다.
| 방식 | 설명 |
|---|---|
모델 불러오기 | 포털에 등록된 모델을 불러옵니다. |
에이전트 불러오기 | 포털에 등록된 에이전트와 그 에이전트의 버전을 불러옵니다. |
커스텀 API 추가 | API를 직접 입력합니다. 3. 버전별 API 연동과 같습니다. |
6-1연결 방식
Load Model,Load Agent,Add Custom API중 하나를 고릅니다.
Add Custom API는 3. Version별 API 연동과 같습니다.
6-1모델 불러오기
Model List에서 모델을 고릅니다.Deleted모델은 고를 수 없습니다.Validate & Load를 클릭합니다.
6-2Agent 불러오기
Agent List에서 Agent를 고르고Next를 클릭합니다.Agent Version List에서 Version을 고르고Validate & Load를 클릭합니다.
6-3Output Key 매핑
- 경로에
response_1.접두어를 붙여 매핑하고Save를 클릭합니다.
Pick from response로 고르면 접두어가 자동으로 붙습니다.- 경로에
불러온 모델과 에이전트의 응답 경로에는 response_1. 접두어를 붙입니다(예: response_1.result.answer). 응답에서 선택으로 고르면 자동으로 붙습니다.
자주 묻는 질문
모듈 키를 수정했더니 왜 버전 세팅이 사라졌나요?키를 하나라도 수정하면 모든 버전 세팅이 처음 상태가 되기 때문이에요.
- 원인
- 버전 세팅은 모듈의 키 구조를 기준으로 만들어져요.
- 해결 방법
- 버전 세팅을 처음부터 다시 해 주세요.
Request Body 변수가 왜 실제 값으로 바뀌지 않나요?변수 이름이 입력 키 이름과 다르기 때문이에요.
- 원인
{{key_name}}의 이름이 입력 키와 정확히 같아야 해요.- 해결 방법
- 변수 이름을 입력 키와 똑같이 고쳐 주세요.
출력 매핑 바로가기가 왜 눌리지 않나요?URL이 비었거나, 필수 변수를 쓰지 않았거나, 턴 정의에 빈칸이 있기 때문이에요.
- 원인
- 창 아래
Required variables를 모두 써야 다음으로 넘어가요. - 해결 방법
- 빨간 안내 문구와 빈칸을 확인해 주세요.
연결 테스트에서 왜 인증 오류나 형식 오류가 발생하나요?Header의 인증 정보나 Request Body 형식이 잘못되었기 때문이에요.
- 원인
- 테스트는 입력한 설정 그대로 API를 호출해요.
- 해결 방법
- Header와 Request Body를 고친 뒤 다시 테스트해 주세요.
멀티턴에서 왜 ...{{chat_history}} 오류가 발생하나요?Request Body에 ...{{chat_history}}가 없거나 철자가 틀렸기 때문이에요.
- 원인
- 이전 대화는 이 자리에 들어가요.
- 해결 방법
- 기본 예시처럼
messages배열 안에 넣어 주세요.
점수가 바뀐 원인을 추적할 수 없으면 어떻게 하나요?출력 키 매핑을 확인해 보세요. Extracted Value로 값이 맞는지 본 뒤 저장하면 돼요.
- 원인
- 잘못 매핑된 키는 모든 평가 결과를 흐려요.
- 해결 방법
Extracted Value로 값을 확인한 뒤 저장해 주세요.
비용이 왜 계산되지 않나요?토큰 경로가 틀렸거나 단가를 넣지 않았기 때문이에요.
- 원인
- 두 경로와 두 단가가 모두 있어야 비용을 계산해요.
- 해결 방법
- 제공사별 경로를 참고해 다시 입력해 주세요.