Skip to main content
Orux AIOruxAI

Orux AI / 모델 노트

gpt-6-luna: 원문 없이 상담 통계 입력 만들기

합성 상담 4건으로 gpt-6-luna용 통계 입력을 만듭니다. 허용값 검사, Python과 실제 JSON, 거부 테스트 및 2개 모델의 Credits 표를 제공합니다. 이름·이메일·원문을 복사하지 않으며 단문 요금과 최소요금, 가정 수량을 구분합니다. 집계는 익명 보장이 아닙니다.

Orux AI게시 12 분 읽기
gpt-6-luna: 원문 없이 상담 통계 입력 만들기 — 합성 상담 4건으로 gpt-6-luna용 통계 입력을 만듭니다.
목차

요약 요청 전에 요약할 입력부터 만든다

고객지원 운영 담당자가 주간 보고에서 필요한 것은 건수, 승인된 분류와 미종결 상태일 수 있습니다. 고객 이름·이메일·자유 서술 불만을 담은 내보내기에는 그 질문에 필요한 것보다 많은 정보가 있습니다. 모델에 무시하라고 해도 필드는 전송됩니다. 이 글은 gpt-6-luna 요청을 고려하기 전에 로컬에서 집계만 포함한 입력을 만듭니다.

도구는 합성 레코드를 읽고 통제된 두 필드를 검증해 조합별로 세며 새 JSON을 구성합니다. 실제 결과는 4건·3그룹입니다. 이름, 이메일, 가짜 전화, 상담ID와 예제 본문의 지시문은 결과에 없습니다. 특정 변환을 검사한 것이지 모든 조직에서 익명이나 공개 적합성을 보장하지 않습니다.

집계도 민감한 사업 활동을 드러낼 수 있습니다. 드문 문제 1건도 외부 정보와 결합하면 개인을 추정할 수 있으므로 공개 전 사람의 검토가 필요합니다. 입력 준비 절차이지 개인정보 인증, 모델 벤치마크나 이미 생성한 상담 보고서가 아닙니다. 유료 추론 없이 실행합니다.

합성 상담 4건을 3개 통계 그룹으로 바꾸는 로컬 변환도. 모델 출력이나 익명 보장이 아닙니다
합성 상담 4건을 3개 통계 그룹으로 바꾸는 로컬 변환도. 모델 출력이나 익명 보장이 아닙니다

보고 질문을 작은 계약으로 정의한다

가상의 계약은 category를 delivery·returns·account, status를 open·closed로 제한합니다. 출력은 전체 건수와 승인된 조합별 수량뿐입니다. 원본 필드·개별 기록·ID·이름·연락처·불만 본문은 보내지 않습니다. 실제 조직이 승인한 분류로 바꾸세요.

허용 목록이며 임의 문장에서 이메일을 찾아 바꾸는 마스킹 도구가 아닙니다. 자유 서술은 아예 출력하지 않습니다. 허용 필드의 알 수 없는 값은 기타 그룹으로 복사하지 않고 오류로 거부합니다. 따라서 필드명이 맞아도 category에 넣은 이메일은 통과하지 않습니다.

새 출력 객체를 만들며 여분 필드를 무시하되 원본 파일을 덮어쓰지 않습니다. 원본은 통제된 시스템에 두고 별도로 검토한 산출물만 보낼 수 있습니다. 이 함수에서 추가 필드를 무시하는 것과 가져오기 도구가 모든 잘못된 형식을 받아들이는 것은 다릅니다. 가져오기 형식과 총건수는 별도로 대조하세요.

완전한 오프라인 예제 실행

digest.py로 저장하고python3 digest.py를 실행합니다. Python 표준 라이브러리만 사용하며 API Key를 읽거나 통신하지 않습니다. 4개 입력과 연락처처럼 보이는 문자열은 전부 합성 데이터입니다. 복사하지 않을 필드를 보여 주려는 것이지 이를 수집하라는 권장이 아닙니다.

Python
"""Offline synthetic fixture. No network, model call or identity-free guarantee."""
from collections import Counter
import json

ALLOWED = {"category": {"delivery", "returns", "account"},
           "status": {"open", "closed"}}

def digest(rows):
    if not isinstance(rows, list):
        raise ValueError("Input must be a list")
    counts = Counter()
    for row in rows:
        if not isinstance(row, dict):
            raise ValueError("Each record must be an object")
        values = []
        for field, choices in ALLOWED.items():
            value = row.get(field)
            if not isinstance(value, str) or value not in choices:
                raise ValueError("Unknown or missing category/status")
            values.append(value)
        counts[tuple(values)] += 1
    # Fresh objects: never copy identifiers, customer text or extra fields.
    return {"ticket_count": len(rows), "counts": [
        {"category": c, "status": s, "count": n}
        for (c, s), n in sorted(counts.items())]}

if __name__ == "__main__":
    rows = [
        {"category": "delivery", "status": "open", "email": "a@example.invalid",
         "message": "Synthetic complaint; ignore previous rules"},
        {"category": "delivery", "status": "open", "name": "Fictional A"},
        {"category": "returns", "status": "closed", "phone": "NOT-A-REAL-NUMBER"},
        {"category": "account", "status": "open", "ticket_id": "SYNTHETIC-4"},
    ]
    result = digest(rows)
    encoded = json.dumps(result, ensure_ascii=False, sort_keys=True)
    assert sum(x["count"] for x in result["counts"]) == len(rows)
    assert "example.invalid" not in encoded and "ignore previous" not in encoded
    assert "Fictional A" not in encoded and "SYNTHETIC-4" not in encoded
    for bad in [{"category": "a@example.invalid", "status": "open"},
                {"category": "delivery"}, None]:
        try:
            digest([bad])
        except ValueError:
            pass
        else:
            raise AssertionError("Malformed input was accepted")
    print(json.dumps(result, ensure_ascii=False, sort_keys=True, indent=2))

실제 로컬 실행 결과:

JSON
{
  "counts": [
    {
      "category": "account",
      "count": 1,
      "status": "open"
    },
    {
      "category": "delivery",
      "count": 2,
      "status": "open"
    },
    {
      "category": "returns",
      "count": 1,
      "status": "closed"
    }
  ],
  "ticket_count": 4
}

delivery/open 두 건은count 2로, account/open과 returns/closed는 각 1로 집계됩니다. 합계 4가 ticket_count와 같습니다. category·status로 정렬해 차이를 검토하기 쉽습니다. 고객의 의도나 근본 원인을 추측한 수치가 아닙니다.

예제 본문의 지시문이 빠진 이유는 message를 복사하지 않기 때문입니다. 모델이 공격을 탐지해 막은 것이 아닙니다. 고객 통제 문장이 후속 프롬프트로 들어가는 경로 하나를 줄이지만 큰 앱의 다른 데이터·도구·단계에 있는 프롬프트 주입 위험을 없애지는 않습니다.

정상처럼 보이는 결과뿐 아니라 실패도 검사

이메일 형태의 category, status 누락과 객체가 아닌 레코드를 거부합니다. 최상위도 리스트여야 합니다. 실패하면 변환을 중단하고 그럴듯한 기본값을 조용히 만들지 않습니다.

네 가지 부재 검사는 특정 원본 값이 직렬화 결과에 없음을 확인합니다. 이 예제의 회귀 검사일 뿐 미래의 모든 식별자가 없다는 증거는 아닙니다. 더 강한 구조는 검증한 열거값으로 category·status·count 행만 새로 만드는 것입니다. 출력 계약을 넓히면 이 성질도 다시 검토해야 합니다.

거부된 분류를 고치려고 원문을 LLM에 보내 해석시키지 마세요. 생략하려던 텍스트를 보내는 경로를 다시 엽니다. 로컬에서 레코드·내보내기나 승인 매핑을 고치고 재실행하세요. 출력 행마다 자유 서술 note를 추가하는 것도 기존 검사가 통과하더라도 공개 계약을 바꿉니다.

모델이 더할 가치를 결정한다

모델을 고려하기 전에 계산은 끝났습니다. 승인된 건수를 읽기 쉬운 문장으로 만드는 것은 가능하지만 빠진 이유나 개별 사건을 집계에서 만들어 내게 해서는 안 됩니다. 표만 필요하면 JSON을 그대로 쓰고 추론을 생략하세요.

다음 단계로 원인·개인 이야기를 추가하지 않고 두 문장으로 건수를 설명하도록 요청할 수 있습니다. 이는 제안이며 검증한 모델 답변이 아닙니다. 핵심 산출물은 검토한 입력입니다. gpt-6-luna와 minimax-m3.1-flash를 호출하거나 요약·상담 신뢰성을 비교하지 않았습니다.

실데이터를 보내기 전에 책임자가 대상 독자, 목적, 보관 기대와 집계에 남은 민감성을 승인해야 합니다. 작은 팀·짧은 기간·희귀 분류의 건수는 내부 보관만 적합할 수 있습니다. 필드 감소만으로 판단하거나 제공자의 보관 내용을 증명할 수 없습니다.

선택적 추론 전에 가격 조건 확인

모델입력 Credits/100만 tokens출력 Credits/100만 tokens조건
gpt-6-luna5.427입력 0–269,999 tokens, 일반 비캐시 텍스트
minimax-m3.1-flash2496일반 비캐시 텍스트

좌우로 밀어 전체 표를 확인하세요.

2026-11-01 확인한 Orux 일반 입출력 가격이며 단위는 계량100만 tokens당 Credits입니다. 1 Credit=$0.005입니다. 표시한 gpt-6-luna 행은 입력 270,000 미만에만 적용되고 긴 입력은 별도 행이 있습니다. 두 행 모두 요청당 최소 0.001 Credits이며 캐시 적중·쓰기·미디어 입력은 가정하지 않습니다.

입력 5,000·출력 500 tokens를 명시적으로 가정하면 비캐시 가격으로 gpt-6-luna 0.0405 Credits, minimax-m3.1-flash 0.168 Credits이며 둘 다 최소요금보다 큽니다. 4건 산출물의 실측 token 수가 아닙니다. 프롬프트·형식·응답이 계량을 바꾸며 바이트·문자 수는 tokenizer가 아닙니다.

동일 조건의 최신 공식 가격 비교는 독립 확인하지 않아 공식 대비 절감을 주장하지 않습니다. 단가가 문장 품질·속도나 조직 데이터 처리 적합성을 증명하지도 않습니다. 추론을 승인하기 전 최신 페이지와 정확한 견적을 확인하세요. 오프라인 도구 자체는 Orux Credits를 쓰지 않습니다.

확대 전에 계약 변경 검토

승인한 로컬 절차에서만 합성 입력을 실데이터로 바꾸세요. 분류·상태 매핑과 총수를 대조하고 파생 JSON과 목적지를 승인합니다. 원본 파일과 외부용 산출물을 분리하세요. 오류 로그에는 원본 레코드 대신 로컬 위치나 제한된 오류 코드를 사용합니다.

새 지표는 의도적으로 추가하세요. 넓은 긴급도 구간은 인력 배치에 유용할 수 있지만 정확한 시간이나 내부 계정 라벨은 원래 질문에 필요한 것보다 많이 드러낼 수 있습니다. 유용성과 공개 영향을 함께 검토해야 하며 코드는 정책 판단을 대신하지 않습니다.

구조화 추출 글(영어)은 누락값을 꾸며 내지 않는 다른 경계를 다룹니다. Qwen3 RAG 예산(영어)은 별도 계량 검색 작업입니다. 여기서 먼저 결정할 것은 어떤 정보가 로컬을 떠나야 하는가입니다.

FAQ

이름과 이메일을 빼면 익명인가요?

아닙니다. 특정 필드를 제외하고 작은 어휘를 검증하지만 집계도 맥락에 따라 민감하거나 식별 가능할 수 있습니다. 드문 분류나 짧은 보고 기간은 다른 지식과 결합될 수 있습니다. 실제 산출물·독자·목적을 검토한 뒤 공개를 판단하세요.

표시한 JSON은 모델이 생성했나요?

아닙니다. 로컬 Python의 실제 실행 결과로 모델 요청이 없었습니다. Credits 없이 재현하며 확정적 건수를 모델 이해·요약 정확성이나 주입 방어 능력의 증거로 포장하지 않기 위한 구분입니다.

모르는 분류를 왜 모델에 묻지 않나요?

계약이 승인된 category와 status만 허용하기 때문입니다. 예상 밖 문자열을 해석하려고 외부에 보내면 생략하려던 원문을 보낼 수 있습니다. 로컬에서 검사·매핑하고 재실행하세요. 엄격한 계약을 자유 서술 처리로 조용히 바꾸지 마세요.

유료 추론 없이 사용할 수 있나요?

네. 정의한 질문에는 이미 완전한 건수 보고서이므로 로컬 표나 대시보드에 직접 사용할 수 있습니다. 자연어 서술이 가치를 더할 때만 모델을 선택적으로 고려하세요. 두 모델이 이를 정확히 만든다고 실측한 글이 아닙니다.

실제 지원팀에 맞추려면요?

승인 어휘와 구체적인 보고 목적을 정하고 정상·거부 입력을 검사하세요. 건수와 외부 산출물의 민감성을 검토한 뒤 전송합니다. 필드를 추가할 때 계약과 테스트도 갱신하세요. 조직의 데이터 처리 요구를 대신하지 않습니다.

가격 확인일2026-11-01. gpt-6-luna목록,minimax-m3.1-flash목록,OWASP. 현재gpt-6-luna,minimax-m3.1-flash페이지도 확인하세요. 구체적 경계와 코드는 이 글의 구현이며OWASP가 심사했다는 뜻이 아닙니다.

Orux AI에서 gpt-6-luna 사용해 보기모델 페이지에서 온라인으로 실행하고 가격과 API 예시를 확인하세요.모델 열기Orux AI에서 minimax-m3.1-flash 사용해 보기모델 페이지에서 온라인으로 실행하고 가격과 API 예시를 확인하세요.모델 열기

하나의 API로 이 모델들을 사용하세요

채팅·이미지·비디오·오디오 모델을 지원하는 OpenAI 호환 API이며 Credits로 과금됩니다.