12 KiB
LLM 테스트 파일
이 문서는 문서를 번역하는 LLM이 scripts/translate.py의 general_prompt와 docs/{language code}/llm-prompt.md의 언어별 프롬프트를 이해하는지 테스트합니다. 언어별 프롬프트는 general_prompt에 추가됩니다.
여기에 추가된 테스트는 언어별 프롬프트를 설계하는 모든 사람이 보게 됩니다.
사용 방법은 다음과 같습니다:
- 언어별 프롬프트
docs/{language code}/llm-prompt.md를 준비합니다. - 이 문서를 원하는 대상 언어로 새로 번역합니다(예:
translate.py의translate-page명령). 그러면docs/{language code}/docs/_llm-test.md아래에 번역이 생성됩니다. - 번역에서 문제가 없는지 확인합니다.
- 필요하다면 언어별 프롬프트, 일반 프롬프트, 또는 영어 문서를 개선합니다.
- 그런 다음 번역에서 남아 있는 문제를 수동으로 수정해 좋은 번역이 되게 합니다.
- 좋은 번역을 둔 상태에서 다시 번역합니다. 이상적인 결과는 LLM이 더 이상 번역에 변경을 만들지 않는 것입니다. 이는 일반 프롬프트와 언어별 프롬프트가 가능한 한 최선이라는 뜻입니다(때때로 몇 가지 seemingly random 변경을 할 수 있는데, 그 이유는 LLM은 결정론적 알고리즘이 아니기 때문입니다).
테스트:
코드 스니펫
//// tab | 테스트
다음은 코드 스니펫입니다: foo. 그리고 이것은 또 다른 코드 스니펫입니다: bar. 그리고 또 하나: baz quux.
////
//// tab | 정보
코드 스니펫의 내용은 그대로 두어야 합니다.
scripts/translate.py의 일반 프롬프트에서 ### Content of code snippets 섹션을 참고하세요.
////
따옴표
//// tab | 테스트
어제 제 친구가 이렇게 썼습니다: "If you spell incorrectly correctly, you have spelled it incorrectly". 이에 저는 이렇게 답했습니다: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"".
/// note | 참고
LLM은 아마 이것을 잘못 번역할 것입니다. 흥미로운 점은 재번역할 때 고정된 번역을 유지하는지 여부뿐입니다.
///
////
//// tab | 정보
프롬프트 설계자는 중립 따옴표를 타이포그래피 따옴표로 변환할지 선택할 수 있습니다. 그대로 두어도 괜찮습니다.
예를 들어 docs/de/llm-prompt.md의 ### Quotes 섹션을 참고하세요.
////
코드 스니펫의 따옴표
//// tab | 테스트
pip install "foo[bar]"
코드 스니펫에서 문자열 리터럴의 예: "this", 'that'.
코드 스니펫에서 문자열 리터럴의 어려운 예: f"I like {'oranges' if orange else "apples"}"
하드코어: Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"
////
//// tab | 정보
... 하지만 코드 스니펫 안의 따옴표는 그대로 유지되어야 합니다.
////
코드 블록
//// tab | 테스트
Bash 코드 예시...
# 우주에 인사말 출력
echo "Hello universe"
...그리고 콘솔 코드 예시...
$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:solid">main.py</u>
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting server
Searching for package file structure
...그리고 또 다른 콘솔 코드 예시...
// "Code" 디렉터리 생성
$ mkdir code
// 해당 디렉터리로 이동
$ cd code
...그리고 Python 코드 예시...
wont_work() # 이건 동작하지 않습니다 😱
works(foo="bar") # 이건 동작합니다 🎉
...이상입니다.
////
//// tab | 정보
코드 블록의 코드는(주석을 제외하고) 수정하면 안 됩니다.
scripts/translate.py의 일반 프롬프트에서 ### Content of code blocks 섹션을 참고하세요.
////
탭과 색상 박스
//// tab | 테스트
/// info | 정보 일부 텍스트 ///
/// note | 참고 일부 텍스트 ///
/// note Technical details | 기술 세부사항 일부 텍스트 ///
/// check | 확인 일부 텍스트 ///
/// tip | 팁 일부 텍스트 ///
/// warning | 경고 일부 텍스트 ///
/// danger | 위험 일부 텍스트 ///
////
//// tab | 정보
탭과 Info/Note/Warning/등의 블록은 제목 번역을 수직 막대(|) 뒤에 추가해야 합니다.
scripts/translate.py의 일반 프롬프트에서 ### Special blocks와 ### Tab blocks 섹션을 참고하세요.
////
웹 및 내부 링크
//// tab | 테스트
링크 텍스트는 번역되어야 하고, 링크 주소는 변경되지 않아야 합니다:
- 위의 제목으로 가는 링크
- 내부 링크{.internal-link target=_blank}
- 외부 링크
- 스타일로 가는 링크
- 스크립트로 가는 링크
- 이미지로 가는 링크
링크 텍스트는 번역되어야 하고, 링크 주소는 번역 페이지를 가리켜야 합니다:
////
//// tab | 정보
링크는 번역되어야 하지만, 주소는 변경되지 않아야 합니다. 예외는 FastAPI 문서 페이지로 향하는 절대 링크이며, 이 경우 번역 페이지로 연결되어야 합니다.
scripts/translate.py의 일반 프롬프트에서 ### Links 섹션을 참고하세요.
////
HTML "abbr" 요소
//// tab | 테스트
여기 HTML "abbr" 요소로 감싼 몇 가지가 있습니다(일부는 임의로 만든 것입니다):
abbr가 전체 문구를 제공
- GTD
lt- XWT
- PSGI
abbr가 설명을 제공
- cluster
- Deep Learning
abbr가 전체 문구와 설명을 제공
- MDN
- I/O.
////
//// tab | 정보
"abbr" 요소의 "title" 속성은 몇 가지 구체적인 지침에 따라 번역됩니다.
번역에서는(영어 단어를 설명하기 위해) 자체 "abbr" 요소를 추가할 수 있으며, LLM은 이를 제거하면 안 됩니다.
scripts/translate.py의 일반 프롬프트에서 ### HTML abbr elements 섹션을 참고하세요.
////
제목
//// tab | 테스트
웹앱 개발하기 - 튜토리얼
안녕하세요.
타입 힌트와 -애너테이션
다시 안녕하세요.
super- 및 subclasses
다시 안녕하세요.
////
//// tab | 정보
제목에 대한 유일한 강한 규칙은, LLM이 중괄호 안의 해시 부분을 변경하지 않아 링크가 깨지지 않게 하는 것입니다.
scripts/translate.py의 일반 프롬프트에서 ### Headings 섹션을 참고하세요.
언어별 지침은 예를 들어 docs/de/llm-prompt.md의 ### Headings 섹션을 참고하세요.
////
문서에서 사용되는 용어
//// tab | 테스트
-
당신
-
당신의
-
예: (e.g.)
-
등 (etc.)
-
int로서의foo -
str로서의bar -
list로서의baz -
튜토리얼 - 사용자 가이드
-
고급 사용자 가이드
-
SQLModel 문서
-
API 문서
-
자동 문서
-
Data Science
-
Deep Learning
-
Machine Learning
-
Dependency Injection
-
HTTP Basic authentication
-
HTTP Digest
-
ISO format
-
JSON Schema 표준
-
JSON schema
-
schema definition
-
Password Flow
-
Mobile
-
deprecated
-
designed
-
invalid
-
on the fly
-
standard
-
default
-
case-sensitive
-
case-insensitive
-
애플리케이션을 서빙하다
-
페이지를 서빙하다
-
앱
-
애플리케이션
-
요청
-
응답
-
오류 응답
-
경로 처리
-
경로 처리 데코레이터
-
경로 처리 함수
-
body
-
요청 body
-
응답 body
-
JSON body
-
form body
-
file body
-
함수 body
-
parameter
-
body parameter
-
path parameter
-
query parameter
-
cookie parameter
-
header parameter
-
form parameter
-
function parameter
-
event
-
startup event
-
서버 startup
-
shutdown event
-
lifespan event
-
handler
-
event handler
-
exception handler
-
처리하다
-
model
-
Pydantic model
-
data model
-
database model
-
form model
-
model object
-
class
-
base class
-
parent class
-
subclass
-
child class
-
sibling class
-
class method
-
header
-
headers
-
authorization header
-
Authorizationheader -
forwarded header
-
dependency injection system
-
dependency
-
dependable
-
dependant
-
I/O bound
-
CPU bound
-
concurrency
-
parallelism
-
multiprocessing
-
env var
-
environment variable
-
PATH -
PATHvariable -
authentication
-
authentication provider
-
authorization
-
authorization form
-
authorization provider
-
사용자가 인증한다
-
시스템이 사용자를 인증한다
-
CLI
-
command line interface
-
server
-
client
-
cloud provider
-
cloud service
-
development
-
development stages
-
dict
-
dictionary
-
enumeration
-
enum
-
enum member
-
encoder
-
decoder
-
encode하다
-
decode하다
-
exception
-
raise하다
-
expression
-
statement
-
frontend
-
backend
-
GitHub discussion
-
GitHub issue
-
performance
-
performance optimization
-
return type
-
return value
-
security
-
security scheme
-
task
-
background task
-
task function
-
template
-
template engine
-
type annotation
-
type hint
-
server worker
-
Uvicorn worker
-
Gunicorn Worker
-
worker process
-
worker class
-
workload
-
deployment
-
deploy하다
-
SDK
-
software development kit
-
APIRouter -
requirements.txt -
Bearer Token
-
breaking change
-
bug
-
button
-
callable
-
code
-
commit
-
context manager
-
coroutine
-
database session
-
disk
-
domain
-
engine
-
fake X
-
HTTP GET method
-
item
-
library
-
lifespan
-
lock
-
middleware
-
mobile application
-
module
-
mounting
-
network
-
origin
-
override
-
payload
-
processor
-
property
-
proxy
-
pull request
-
query
-
RAM
-
remote machine
-
status code
-
string
-
tag
-
web framework
-
wildcard
-
return하다
-
validate하다
////
//// tab | 정보
이것은 문서에서 보이는 (대부분) 기술 용어의 불완전하고 비규범적인 목록입니다. 프롬프트 설계자가 어떤 용어에 대해 LLM에 추가적인 도움이 필요한지 파악하는 데 유용할 수 있습니다. 예를 들어, 좋은 번역을 계속 덜 좋은 번역으로 되돌릴 때, 또는 언어에서 용어의 활용/변화를 처리하는 데 문제가 있을 때 도움이 됩니다.
예를 들어 docs/de/llm-prompt.md의 ### List of English terms and their preferred German translations 섹션을 참고하세요.
////