URL로 필터된 뷰 만들기
URL로 필터된 뷰 만들기
Confident AI 페이지 URL에 필터를 직접 적어 넣으면, 테스트 런·테스트 케이스·트레이스 등 어떤 리스트든 이미 필터가 적용된 채로 열 수 있어요. 누구와도 공유할 수 있죠.
출처: 문서
본문
개요
Confident AI에서는 트레이스, 테스트 런, 테스트 케이스 등 다양한 리스트를 필터할 수 있어요. 이 필터들은 URL 파라미터에 적용되므로 누구와도 공유할 수 있어요. JSON으로 필터를 직접 만들고 URL로 변환할 수도 있습니다.
이 가이드는 그 JSON을 작성하는 방법, 여러 필터를 조합하는 방법, 여러분 언어로 링크를 인코딩하는 방법을 보여줘요 — 마지막에는 필터할 수 있는 모든 것의 레퍼런스가 이어집니다.
필터 만들기
페이지 URL에서 시작하기
필터할 페이지의 URL로 시작해요. 모든 리스트에서 형태는 같아요:
https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs
https://app.confident-ai.com/project/YOUR_PROJECT_ID/observatory/traces
여기에 쿼리 파라미터 두 개를 추가할 거예요:
filters— JSON으로 된 필터. 압축돼 있어요(3단계에서 방법을 보여줘요).operator—AND또는OR. 여러 필터 그룹이 어떻게 결합되는지 나타내요.
필터를 JSON으로 작성하기
필터는 그룹 단위로 정리돼요. 각 그룹은 operator와 조건 리스트를 갖고, 각 조건은 category(무엇을 필터하는지), condition, value를 담은 단일 필터예요:
[
{
"operator": "AND",
"filters": [
{ "category": "Metadata", "key": "environment", "condition": "Is", "value": "production" }
]
}
]
- 그룹 안의 조건은 그 그룹의
operator로 결합돼요. - 그룹들은 최상위
operator쿼리 파라미터로 결합돼요.
Metadata, Hyperparameter, Metric, Criteria, Classifier 필터를 제외한 모든 필터는
key를category와 같은 텍스트로 설정하세요. 그 다섯 종류는key가 필터 대상의 특정 이름(메타데이터 키, 하이퍼파라미터, 메트릭, 크라이테리아, 클래스파이어 이름)이에요.
아래 필터 레퍼런스에 각 페이지의 모든 속성에 대한 정확한 category, condition, value가 나열돼 있어요.
인코딩해서 URL에 추가하기
Confident AI는 filters 값을 lz-string 라이브러리로 압축된 문자열로 저장해요. JSON을 compressToEncodedURIComponent로 압축한 뒤, 결과를 filters로 추가하고(이미 URL에 안전해요) operator를 설정하면 돼요:
https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=COMPRESSED_STRING&operator=AND
JavaScript
npm install lz-string
import LZString from "lz-string";
const filters = [
{
operator: "AND",
filters: [
{ category: "Metadata", key: "environment", condition: "Is", value: "production" },
],
},
];
const encoded = LZString.compressToEncodedURIComponent(JSON.stringify(filters));
const url = `https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=${encoded}&operator=AND`;
Python
pip install lzstring
import json
import lzstring
filters = [
{
"operator": "AND",
"filters": [
{"category": "Metadata", "key": "environment", "condition": "Is", "value": "production"},
],
},
]
encoded = lzstring.LZString().compressToEncodedURIComponent(json.dumps(filters))
url = f"https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters={encoded}&operator=AND"
Rust
lz-str 크레이트를 사용해요:
let json = r#"[{"operator":"AND","filters":[{"category":"Metadata","key":"environment","condition":"Is","value":"production"}]}]"#;
let encoded = lz_str::compress_to_encoded_uri_component(json);
let url = format!("https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters={encoded}&operator=AND");
Ruby
lz_string 같은 커뮤니티 포트를 사용해요:
json = '[{"operator":"AND","filters":[{"category":"Metadata","key":"environment","condition":"Is","value":"production"}]}]'
encoded = LZString.compress_to_encoded_uri_component(json)
url = "https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=#{encoded}&operator=AND"
Elixir
elixir-lz-string 같은 커뮤니티 포트를 사용해요:
json = ~s([{"operator":"AND","filters":[{"category":"Metadata","key":"environment","condition":"Is","value":"production"}]}])
encoded = LzString.compress_to_encoded_uri_component(json)
url = "https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=#{encoded}&operator=AND"
Java
lz-string4java 같은 커뮤니티 포트를 사용해요:
String json = "[{\"operator\":\"AND\",\"filters\":[{\"category\":\"Metadata\",\"key\":\"environment\",\"condition\":\"Is\",\"value\":\"production\"}]}]";
String encoded = LZString.compressToEncodedURIComponent(json);
String url = "https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=" + encoded + "&operator=AND";
C#
lz-string-csharp 같은 커뮤니티 포트를 사용해요:
string json = "[{\"operator\":\"AND\",\"filters\":[{\"category\":\"Metadata\",\"key\":\"environment\",\"condition\":\"Is\",\"value\":\"production\"}]}]";
string encoded = LZString.compressToEncodedURIComponent(json);
string url = $"https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters={encoded}&operator=AND";
PHP
lz-string-php 같은 커뮤니티 포트를 사용해요:
$json = json_encode([
["operator" => "AND", "filters" => [
["category" => "Metadata", "key" => "environment", "condition" => "Is", "value" => "production"],
]],
]);
$encoded = LZString::compressToEncodedURIComponent($json);
$url = "https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters={$encoded}&operator=AND";
Go
go-lz-string 같은 커뮤니티 포트를 사용해요:
input := `[{"operator":"AND","filters":[{"category":"Metadata","key":"environment","condition":"Is","value":"production"}]}]`
encoded, _ := golzstring.CompressToEncodedURIComponent(input)
url := "https://app.confident-ai.com/project/YOUR_PROJECT_ID/test-runs?filters=" + encoded + "&operator=AND"
JavaScript의
lz-string이 참조 구현이고, 나머지는 그것을 따르는 커뮤니티 포트예요. 설치 단계와 메서드 이름이 조금씩 다르니, 여러분 언어의 연결된 저장소를 확인하세요.
완료 ✅. 링크를 열면 필터가 적용된 페이지가 로드돼요.
필터 레퍼런스
각 필터의
category,condition,value를 아래에 있는 그대로 복사하세요 — 실제 속성이나 값과 일치하지 않는 것은 적용되지 않아요.
필터할 수 있는 속성은 페이지마다 달라요 — 각 페이지의 전체 세트가 아래에 있어요. 표에서 쓰이는 줄임말 두 가지:
- 숫자 조건 —
Is less than,Is equal or less than,Is greater than,Is equal or greater than,Is equal to,Does not equal. - 태그 조건 —
Contains,Contains only,Does not contain. - 그 외에는 행에 달리 표시되지 않는 한
Is/Is not을 써요.
대부분의 속성은 category를 key로 사용해요. 일부는 커스텀 key 를 쓰는데, 그게 필터 대상 이름이에요: Metadata(메타데이터 키), Hyperparameter(하이퍼파라미터 이름), Metric Status / Metric Score(메트릭 이름), Criteria(크라이테리아 이름), Classifier(시그널 이름).
테스트 런
| Property | category |
Conditions | value |
|---|---|---|---|
| Test run ID | Test Run ID |
Is, Is not |
the test run's ID |
| Identifier | Identifier |
Is, Is not |
the run identifier |
| Test file | Test File |
Is, Is not |
the test file name |
| Dataset | Dataset |
Is, Is not |
the dataset alias |
| Status | Status |
Is, Is not |
COMPLETED, IN_PROGRESS, ERRORED, or CANCELLED |
| Official | Official |
Is, Is not |
Official or Not official |
| Evals mode | Evals Mode |
Is, Is not |
End-to-End or Component-Level |
| Tests passed | Tests Passed |
numeric conditions | a whole number |
| Tests failed | Tests Failed |
numeric conditions | a whole number |
| Pass rate | Pass Rate |
numeric conditions | a percentage, e.g. 90 |
| Fail rate | Fail Rate |
numeric conditions | a percentage, e.g. 10 |
| Tags | Tags |
tag conditions | one or more tags, e.g. ["prod", "smoke"] |
| Trace attached | Trace |
Is, Is not |
Set or Not Set |
| Annotations attached | Annotations |
Is, Is not |
Set or Not Set |
| Annotation name | Annotation Name |
Is, Is not |
the annotation's name |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
| Hyperparameter (key: hyperparameter name) | Hyperparameter |
Is, Is not |
the hyperparameter value |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
테스트 케이스
| Property | category |
Conditions | value |
|---|---|---|---|
| Test case ID | Test Case ID |
Is, Is not |
the test case's ID |
| Name | Name |
Is, Is not |
the test case name |
| Tags | Tags |
tag conditions | one or more tags, e.g. ["billing"] |
| Trace attached | Trace |
Is, Is not |
Set or Not Set |
| Trace ID | Trace Uuid |
Is, Is not |
the trace ID |
| Trace name | Trace Name |
Is, Is not |
the trace name |
| Trace status | Trace Status |
Is, Is not |
Passing or Failing |
| Trace tags | Trace Tags |
tag conditions | one or more tags |
| Span name | Span Name |
Is, Is not |
the span name |
| Span type | Span Type |
Is, Is not |
LLM, AGENT, RETRIEVER, TOOL, or SPAN |
| Span status | Span Status |
Is, Is not |
Passing or Failing |
| Model | Model |
Is, Is not |
the model name |
| Embedder | Embedder |
Is, Is not |
the embedder name |
| Chunk size | Chunk Size |
Is, Is not |
a number |
| Top-K | Top-K |
Is, Is not |
a number |
| Annotation name | Annotation Name |
Is, Is not |
the annotation's name |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
트레이스
| Property | category |
Conditions | value |
|---|---|---|---|
| Trace ID | Trace Uuid |
Is, Is not |
a trace ID |
| Name (trace name) | Name |
Is, Is not |
a trace name |
| Thread ID | Thread Id |
Is, Is not |
a thread ID |
| User ID | User Id |
Is, Is not |
an end-user ID |
| Tags | Tags |
Contains, Contains only, Does not contain |
one or more tags |
| Tools called | Tools Called |
tag conditions | one or more tool names |
| Metrics status (overall) | Metrics Status |
Is, Is not |
Passing or Failing |
| Error status | Error Status |
Is, Is not |
Passing or Failing |
| Environment | Environment |
Is, Is not |
production, development, staging, or testing |
| Metric name (which metrics ran) | Metric Name |
Contains, Contains only, Does not contain |
one or more metric names |
| Review flag | Review flag |
Is, Is not |
Flagged or Not flagged |
| Annotation name | Annotation Name |
Is, Is not |
an annotation name |
| Annotator | Annotator |
Is, Is not |
an annotator (by email) |
| End user | End User |
Is, Is not |
an end-user ID |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Annotation date | Annotation Date |
Is between |
a date range |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
| Classifier (key: signal name) | Classifier |
Is, Is not |
the classifier value |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
스팬
일부 속성은 특정 스팬 타입에만 적용돼요(행에 표시돼 있어요).
| Property | category |
Conditions | value |
|---|---|---|---|
| Span ID | Span Uuid |
Is, Is not |
a span ID |
| Name (span name) | Name |
Is, Is not |
a span name |
| Trace ID | Trace Uuid |
Is, Is not |
a trace ID |
| Integration | Integration |
Is, Is not |
an integration |
| Metrics status (overall) | Metrics Status |
Is, Is not |
Passing or Failing |
| Error status | Error Status |
Is, Is not |
Passing or Failing |
| Model (LLM spans) | Model |
Is, Is not |
a model name |
| Provider (LLM spans) | Provider |
Is, Is not |
a provider |
| Prompt alias (LLM spans) | Prompt Alias |
Is, Is not |
a prompt alias |
| Prompt version (LLM spans) | Prompt Version |
Is, Is not |
a prompt version |
| Prompt label (LLM spans) | Prompt Label |
Is, Is not |
a prompt label |
| Prompt commit hash (LLM spans) | Prompt Commit Hash |
Is, Is not |
a commit hash |
| Embedder (retriever spans) | Embedder |
Is, Is not |
an embedder |
| Chunk size (retriever spans) | Chunk Size |
Is, Is not |
a number |
| Top-K (retriever spans) | Top-K |
Is, Is not |
a number |
| Environment | Environment |
Is, Is not |
production, development, staging, or testing |
| Metric name (which metrics ran) | Metric Name |
Contains, Contains only, Does not contain |
one or more metric names |
| Annotation name | Annotation Name |
Is, Is not |
an annotation name |
| Annotator | Annotator |
Is, Is not |
an annotator (by email) |
| End user | End User |
Is, Is not |
an end-user ID |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Annotation date | Annotation Date |
Is between |
a date range |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
스레드
| Property | category |
Conditions | value |
|---|---|---|---|
| Thread ID | Thread Id |
Is, Is not |
a thread ID |
| User ID | User Id |
Is, Is not |
an end-user ID |
| Metrics status (overall) | Metrics Status |
Is, Is not |
Passing or Failing |
| Tags | Tags |
Contains, Contains only, Does not contain |
one or more tags |
| Environment | Environment |
Is, Is not |
production, development, staging, or testing |
| Metric name (which metrics ran) | Metric Name |
Contains, Contains only, Does not contain |
one or more metric names |
| Trace count | Trace Count |
numeric conditions | a number |
| Annotation name | Annotation Name |
Is, Is not |
an annotation name |
| Annotator | Annotator |
Is, Is not |
an annotator (by email) |
| End user | End User |
Is, Is not |
an end-user ID |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected outcome | Expected Outcome |
Is, Is not |
Set or Not Set |
| Annotation date | Annotation Date |
Is between |
a date range |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
| Classifier (key: signal name) | Classifier |
Is, Is not |
the classifier value |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
사용자
| Property | category |
Conditions | value |
|---|---|---|---|
| Thread ID | Thread Id |
Is, Is not |
a thread ID |
| Tags | Tags |
tag conditions | one or more tags |
| Model | Model |
Is, Is not |
a model name |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Metric status (key: metric name) | Metric Status |
Is, Is not |
Passing or Failing |
| Metric score (key: metric name) | Metric Score |
numeric conditions | a number 0–1 |
| Metadata (key: metadata key) | Metadata |
Is, Is not |
the metadata value |
데이터셋
| Property | category |
Conditions | value |
|---|---|---|---|
| Golden ID | Golden ID |
Is, Is not |
a golden ID |
| Ingestion task | Ingestion Task |
Is, Is not |
an ingestion-task name |
| Finalized | Finalized |
Is, Is not |
True or False |
| Tags | Tags |
tag conditions | one or more tags |
| Assigned to | Assigned to |
Is, Is not |
a project member (by email) |
| Requested review from | Requested review from |
Is, Is not |
a project member (by email) |
휴먼 어노테이션
| Property | category |
Conditions | value |
|---|---|---|---|
| Annotation type | Annotation Type |
Is, Is not |
Thumbs Up/Down or Star Rating |
| Annotator | Annotator |
Is, Is not |
an annotator (by name / email) |
| End user | End User |
Is, Is not |
an end-user ID |
| Explanation | Explanation |
Is, Is not |
Set or Not Set |
| Expected output | Expected Output |
Is, Is not |
Set or Not Set |
| Annotation date | Annotation Date |
Is between |
a date range |
| Star rating | Star Rating |
Is, Is not |
a number 1–5 |
| Thumbs rating | Thumbs Rating |
Is, Is not |
1 (up) or 0 (down) |
| Criteria (key: criteria name) | Criteria |
Is, Is not |
a star rating 1–5, or thumbs 1/0 |
리스크 프로필
| Property | category |
Conditions | value |
|---|---|---|---|
| Assessment ID | Assessment ID |
Is, Is not |
an assessment ID |
| Identifier | Identifier |
Is, Is not |
an identifier |
| Framework | Framework |
Is, Is not |
a framework name |
| Status | Status |
Is, Is not |
COMPLETED, IN_PROGRESS, ERRORED, or CANCELLED |
| Official | Official |
Is, Is not |
Official or Not official |
| Risk category | Risk Category |
Is, Is not |
a risk category |
| Attack method | Attack Method |
Is, Is not |
an attack method |
| Tests passed | Tests Passed |
numeric conditions | a whole number |
| Tests failed | Tests Failed |
numeric conditions | a whole number |
| Pass rate | Pass Rate |
numeric conditions | a percentage |
| Fail rate | Fail Rate |
numeric conditions | a percentage |
| Vulnerability | Vulnerability |
Is, Is not |
a vulnerability |
| Vulnerability type | Vulnerability Type |
Is, Is not |
a vulnerability type |
레드티밍 테스트 케이스
| Property | category |
Conditions | value |
|---|---|---|---|
| Test case ID | Test Case ID |
Is, Is not |
a test-case ID |
| Vulnerability | Vulnerability |
Is, Is not |
a vulnerability |
| Vulnerability type | Vulnerability Type |
Is, Is not |
a vulnerability type |
| Attack method | Attack Method |
Is, Is not |
an attack method |
| Risk category | Risk Category |
Is, Is not |
a risk category |
| Status | Status |
Is, Is not |
Passing, Failing, or Errored |
예시
아래 각 예시는 filters JSON이에요 — 압축하고(3단계) URL에 추가하면 돼요.
메타데이터 값으로 필터하기. 테스트 케이스가 environment: production을 담은 테스트 런:
[
{
"operator": "AND",
"filters": [
{ "category": "Metadata", "key": "environment", "condition": "Is", "value": "production" }
]
}
]
하이퍼파라미터로 필터하기. model 하이퍼파라미터에 gpt-4o 값을 쓴 테스트 런 — ID 없이 이름과 값만:
[
{
"operator": "AND",
"filters": [
{ "category": "Hyperparameter", "key": "model", "condition": "Is", "value": "gpt-4o" }
]
}
]
한 그룹에서 조건 결합하기. 테스트 케이스가 environment: production을 담은 완료 런 — 둘 다 성립해야 하므로 그룹 operator가 AND예요:
[
{
"operator": "AND",
"filters": [
{ "category": "Metadata", "key": "environment", "condition": "Is", "value": "production" },
{ "category": "Status", "key": "Status", "condition": "Is", "value": "COMPLETED" }
]
}
]
OR로 그룹 결합하기. 공식이 또는 Answer Relevancy 메트릭이 통과한 런 — 두 그룹이 최상위 operator=OR로 이어져요:
[
{
"operator": "AND",
"filters": [
{ "category": "Official", "key": "Official", "condition": "Is", "value": "Official" }
]
},
{
"operator": "AND",
"filters": [
{ "category": "Metric Status", "key": "Answer Relevancy", "condition": "Is", "value": "Passing" }
]
}
]
다음 단계
필터된 링크는 필터하는 런을 만드는 워크플로와 잘 어울려요.
트레이스에서 테스트 런 만들기
앱의 트레이스를 평가된 테스트 케이스로 테스트 런에 흘려보내요 — 이 링크로 필터하고 공유하는 런이에요.
이해관계자용 리포트 생성하기
필터된 뷰를 반복되는 큐레이션 리포트로 바꿔서, 일정에 맞춰 이해관계자에게 도달하게 해요.