AWS Bedrock
AWS docs๋ก ์ด๋ํ์ฌ AWS์ ๊ฐ์ ํ๊ณ ์๊ฒฉ ์ฆ๋ช ์ ์ค์ ํ์ธ์.
๋ํ ๊ณ์ ์ ๋ํ ๋ชจ๋ธ ์ก์ธ์ค๋ฅผ ํ์ฑํํด์ผ ํ๋ฉฐ, ์ด ์ง์นจ์ ๋ฐ๋ผ ์ํํ ์ ์์ต๋๋ค.
์ธ์ฆ
LibreChat์ด ์ฌ์ฉํ Bedrock ๋ฆฌ์ ์ ํญ์ ์ค์ ํ์ธ์:
BEDROCK_AWS_DEFAULT_REGION=us-east-1LibreChat์ Bedrock์ ๋ํด ๋ค์ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
AWS profile
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_PROFILE=your-profile-name~/.aws/config ๋๋ ~/.aws/credentials์ ์ด๋ฏธ ์๊ฒฉ ์ฆ๋ช
์ด ์๊ฑฐ๋, ํ๋กํ์ด AWS IAM Identity Center, ์ญํ ๊ฐ์ (role assumption) ๋๋ credential_process๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ธ์.
BEDROCK_AWS_PROFILE๋ ์ ํ๋ ํ๋กํ์ Bedrock์ ์ํ AWS SDK ์๊ฒฉ ์ฆ๋ช
๊ณต๊ธ์ ์ฒด์ธ์ผ๋ก ์ ๋ฌํ๋ LibreChat ์ ์ฉ ์ค์ ์
๋๋ค. ์ด ์ค์ ์ ๋ค๋ฅธ ํตํฉ์์ ์ฌ์ฉํ๋ ์๊ฒฉ ์ฆ๋ช
์ ๋ณ๊ฒฝํ์ง ์๊ณ Bedrock์ ๋ํ ํ๋กํ ์ ํ ๋ฒ์๋ฅผ ์ง์ ํฉ๋๋ค. AWS ํ์ค AWS_PROFILE ํ๊ฒฝ ๋ณ์๋ ์ฌ์ ํ AWS SDK ๊ธฐ๋ณธ ๊ณต๊ธ์ ์ฒด์ธ์์ ์ง์๋ฉ๋๋ค.
ํ๋กํ์์ credential_process๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, AWS ๊ตฌ์ฑ ํ์ผ๊ณผ ํฌํผ ๋ช
๋ น์ ์์ ํ๊ฒ ๋ณดํธํ์ญ์์ค. AWS๋ stderr์ ๊ธฐ๋ก๋ ๋น๋ฐ ์ ๋ณด๊ฐ SDK ๋ฐ ๋๊ตฌ์ ์ํด ์บก์ฒ๋๊ฑฐ๋ ๊ธฐ๋ก๋ ์ ์๋ค๊ณ ๊ฒฝ๊ณ ํฉ๋๋ค.
๊ธฐ๋ณธ AWS ์๊ฒฉ ์ฆ๋ช ๊ณต๊ธ์ ์ฒด์ธ
Bedrock ๊ด๋ จ ์๊ฒฉ ์ฆ๋ช ๋ฐ ํ๋กํ ์ค์ ์ ์๋ตํ์ฌ AWS SDK for JavaScript๊ฐ ์๊ฒฉ ์ฆ๋ช ์ ์๋์ผ๋ก ํ์ธํ๋๋ก ํ ์ ์์ต๋๋ค:
BEDROCK_AWS_DEFAULT_REGION=us-east-1IAM ์ญํ ์ด๋ ๊ธฐํ AWS ๋ค์ดํฐ๋ธ ๋จ๊ธฐ ์๊ฒฉ ์ฆ๋ช ์์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ์ ๊ถ์ฅ๋๋ ๋ฐฉ์์ ๋๋ค. SDK๋ ์ง์๋๋ ์๊ฒฉ ์ฆ๋ช ๊ณต๊ธ์๋ฅผ ์ฐ์ ์์์ ๋ฐ๋ผ ํ์ธํ๋ฉฐ, ์ฒ์์ผ๋ก ์ ํจํ ์๊ฒฉ ์ฆ๋ช ์ ์ฐพ์ผ๋ฉด ์ค๋จํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์์ค๋ก๋ ํ๊ฒฝ ๋ณ์, IAM Identity Center/SSO, ๊ณต์ ๊ตฌ์ฑ ๋ฐ ์๊ฒฉ ์ฆ๋ช ํ์ผ, ์น ์๊ฒฉ ์ฆ๋ช , ECS ์ปจํ ์ด๋ ์๊ฒฉ ์ฆ๋ช , EC2 ์ธ์คํด์ค ๋ฉํ๋ฐ์ดํฐ, ํ๋ก์ธ์ค ์๊ฒฉ ์ฆ๋ช ๋ฑ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ์ค AWS ํ๊ฒฝ ๋ณ์์ธ AWS_ACCESS_KEY_ID ๋ฐ AWS_SECRET_ACCESS_KEY๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด, ํด๋น ์๊ฒฉ ์ฆ๋ช
์ด ~/.aws/credentials ๋๋ ~/.aws/config์ ์๋ ํ๋กํ ๊ธฐ๋ฐ ์๊ฒฉ ์ฆ๋ช
๋ณด๋ค ์ฐ์ ํ ์ ์์ต๋๋ค.
Bedrock API key
Amazon Bedrock API ํค๋ SigV4๋ก ์๋ช ๋ AWS ์๊ฒฉ ์ฆ๋ช ๋์ Bearer ์ธ์ฆ์ ์ฌ์ฉํ์ฌ Bedrock ํธ์ถ์ ์ธ์ฆํฉ๋๋ค. LibreChat์์ ์ด๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด Bedrock ๋ฒ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ธ์:
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_keyBEDROCK_AWS_BEARER_TOKEN์ LibreChat ์ ์ฉ์
๋๋ค. AWS ๋ฌธ์ ๋ฐ ์์ AWS SDK/CLI ์์ ์์๋ AWS ํ์ค์ธ AWS_BEARER_TOKEN_BEDROCK ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง๋ง, LibreChat์ ํ ํฐ์ด Bedrock endpoint ๊ตฌ์ฑ์๋ง ์ํฅ์ ๋ฏธ์น๋๋ก ์๋์ ์ผ๋ก Bedrock ๋ฒ์์ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค. LibreChat์ ์ด ๊ฐ์ bearer ์ธ์ฆ์ผ๋ก AWS SDK์ ์ ๋ฌํฉ๋๋ค.
์ฌ์ฉ์๊ฐ LibreChat UI์์ ์ง์ Bedrock API ํค๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ํ๋ ค๋ฉด ๋ค์์ ์ค์ ํ์ธ์:
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_BEARER_TOKEN=user_provided๋จ๊ธฐ Bedrock API ํค๋ ์ด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ AWS ์ฃผ์ฒด(principal)์ ๊ถํ์ ์์๋ฐ์ผ๋ฉฐ, ์์ฑ๋ AWS ๋ฆฌ์ ๋ด์์๋ง ์ ํจํ๊ณ , ์ต๋ 12์๊ฐ ๋๋ ์์ค ์ธ์ ๋ง๋ฃ ์์ ์ค ๋ ๋น ๋ฅธ ์์ ์ ๋ง๋ฃ๋ฉ๋๋ค. ์ฅ๊ธฐ Bedrock API ํค๋ ํ์ ๋ฐ ๊ฐ๋ฐ ์ฉ๋๋ก๋ง ๊ถ์ฅ๋ฉ๋๋ค. Bedrock API ํค ์ฌ์ฉ ๋ฐ Bedrock API ํค ์์ฑ์ ๊ดํ AWS ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ Bedrock ์๊ฒฉ ์ฆ๋ช
ํ๋กํ์ด๋ IAM ์ญํ ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ์ ์ Bedrock ์ ์ฉ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ธ์:
BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
# BEDROCK_AWS_SESSION_TOKEN=your_session_tokenBEDROCK_AWS_ACCESS_KEY_ID ๋ฐ BEDROCK_AWS_SECRET_ACCESS_KEY๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ, LibreChat์ ์ด๋ฅผ Bedrock ํด๋ผ์ด์ธํธ์ ์ง์ ์ ๋ฌํฉ๋๋ค. ์ด ๋ ๊ฐ์ ๋ฐ๋์ ํจ๊ป ์ ๊ณต๋์ด์ผ ํ๋ฉฐ, BEDROCK_AWS_PROFILE ๋ฐ Bedrock์ ์ํ SDK ๊ธฐ๋ณธ ๊ณต๊ธ์ ์ฒด์ธ๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
BEDROCK_AWS_BEARER_TOKEN์ด ์ค์ ๋ ๊ฒฝ์ฐ, LibreChat์ ์ ์ ์๊ฒฉ ์ฆ๋ช
, BEDROCK_AWS_PROFILE ๋๋ SDK ๊ธฐ๋ณธ ๊ณต๊ธ์ ์ฒด์ธ ๋์ Bedrock์ ๋ํด bearer ์ธ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
AWS ์๊ฒฉ ์ฆ๋ช
๋์์ ๋ํ ์์ธํ ๋ด์ฉ์ AWS SDK for JavaScript ์๊ฒฉ ์ฆ๋ช
๊ณต๊ธ์ ์ฒด์ธ, AWS SDK ๋ฐ ๋๊ตฌ ์ค์ ์ฐธ์กฐ ๋ฐ AWS credential_process ๋ณด์ ์ฐธ๊ณ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๋ชจ๋ธ ๊ตฌ์ฑํ๊ธฐ
BEDROCK_AWS_MODELS๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ์ ์ ํ์ ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค:
BEDROCK_AWS_MODELS=anthropic.claude-fable-5,anthropic.claude-opus-4-8,anthropic.claude-opus-4-7,anthropic.claude-sonnet-4-6,meta.llama3-1-8b-instruct-v1:0์ฐธ๊ณ : ์๋ตํ ๊ฒฝ์ฐ, ์๋ ค์ง ๋ชจ๋ ์ง์ ๋ชจ๋ธ ID๊ฐ ์๋์ผ๋ก ํฌํจ๋ฉ๋๋ค.
-
Bedrock์ Claude Fable/Mythos ํด๋์ค ๋ชจ๋ธ์ ์ถ๋ก ํ๋กํ(inference-profile) ์ ์ฉ์ ๋๋ค.
us.anthropic.claude-fable-5์ ๊ฐ์ ํ๋กํ ID๋ฅผ ์ฌ์ฉํ๊ณ , ๋ชจ๋ธ์ ํธ์ถํ๊ธฐ ์ ์ Bedrock ์ฝ์ ๋๋ Data Retention API์์ Anthropic ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ํ์ฑํํ์ญ์์ค. -
๋ชจ๋ Bedrock ๋ชจ๋ธ ID๋ ์ฌ๊ธฐ์์ ํ์ธํ์ธ์:
์ถ๊ฐ ๊ตฌ์ฑ
librechat.yaml ํ์ผ์์ Bedrock endpoint๋ฅผ ์ถ๊ฐ๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
endpoints:
bedrock:
availableRegions:
- 'us-east-1'
- 'us-west-2'
streamRate: 35
titleModel: 'anthropic.claude-3-haiku-20240307-v1:0'
guardrailConfig:
guardrailIdentifier: 'abc123xyz'
guardrailVersion: '1'
trace: 'enabled'
streamProcessingMode: 'sync'-
streamRate: (์ ํ ์ฌํญ) ๊ฐ ์ ํ ํฐ์ ์ฒ๋ฆฌํ๋ ์๋๋ฅผ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ค์ ํฉ๋๋ค.- ์ด๋ ๋์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์์ ํํ๊ณ ํ๋ก ํธ์๋ ์คํธ๋ฆผ ๋ ๋๋ง์ ๋ ์ํํ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
-
titleModel: (์ ํ ์ฌํญ) ๋ํ ์ ๋ชฉ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ง์ ํฉ๋๋ค.- ๊ถ์ฅ ์ฌํญ:
anthropic.claude-3-haiku-20240307-v1:0. - ์๋ตํ๊ฑฐ๋
current_model๋ก ์ค์ ํ๋ฉด ์ฑํ ๊ณผ ๋์ผํ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ถ์ฅ ์ฌํญ:
-
availableRegions: (์ ํ ์ฌํญ) ์ฌ์ฉ ๊ฐ๋ฅํ AWS ๋ฆฌ์ ์ ์ง์ ํฉ๋๋ค.- ์ ๊ณต๋๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์๋ ๋๋กญ๋ค์ด์ ํตํด ๋ฆฌ์ ์ ์ ํํ ์ ์์ต๋๋ค. ์ ํํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ ๋ฆฌ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค.
-
guardrailConfig: (์ ํ ์ฌํญ) ์ฝํ ์ธ ํํฐ๋ง์ ์ํด AWS Bedrock Guardrails๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.guardrailIdentifier: AWS Bedrock ์ฝ์์์ ์ ๊ณตํ๋ ๊ฐ๋๋ ์ผ ID ๋๋ ARN์ ๋๋ค.guardrailVersion: ๊ฐ๋๋ ์ผ ๋ฒ์ ๋ฒํธ(์:"1") ๋๋"DRAFT".trace: (์ ํ ์ฌํญ) ์ถ์ ๋ก๊น ํ์ฑํ:"enabled","disabled"๋๋"enabled_full".streamProcessingMode: (์ ํ ์ฌํญ) ์คํธ๋ฆผ ์ฒ๋ฆฌ ๋ชจ๋๋ฅผ ์ค์ ํฉ๋๋ค:"sync"๋๋"async"(๊ธฐ๋ณธ๊ฐ์"sync"์ ๋๋ค).- ๊ฐ๋๋ ์ผ ์์ฑ ๋ฐ ๊ด๋ฆฌ์ ๋ํ ๋ด์ฉ์ AWS Bedrock Guardrails documentation์ ์ฐธ์กฐํ์ธ์.
Inference Profiles
AWS Bedrock inference profile์ ์ฌ์ฉํ๋ฉด ํ์ด๋ฐ์ด์
๋ชจ๋ธ์ ๋ํ ์ฌ์ฉ์ ์ง์ ๋ผ์ฐํ
๊ตฌ์ฑ์ ์์ฑํ์ฌ ๋ฆฌ์ ๊ฐ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋น์ฉ ํ ๋น ๋ฐ ๊ท์ ์ค์ ์ ์ด๋ฅผ ํ์ฑํํ ์ ์์ต๋๋ค. librechat.yaml์์ ๋ชจ๋ธ ID๋ฅผ ์ฌ์ฉ์ ์ง์ inference profile ARN์ ๋งคํํ ์ ์์ต๋๋ค:
endpoints:
bedrock:
inferenceProfiles:
'us.anthropic.claude-3-7-sonnet-20250219-v1:0': '${BEDROCK_CLAUDE_37_PROFILE}'ํ๋กํ ์์ฑ, LibreChat ๊ตฌ์ฑ, ๋ก๊น ์ค์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ๋ํ ์ ์ฒด ๊ฐ์ด๋๋ **Bedrock Inference Profiles**๋ฅผ ์ฐธ์กฐํ์ธ์.
YAML ํ๋ ์ฐธ์กฐ๋ **AWS Bedrock Object Structure**๋ฅผ ํ์ธํ์ธ์.
๋ฌธ์ ์ ๋ก๋
Bedrock์ ํ์ผ ์ฒจ๋ถ ๋๋กญ๋ค์ด ๋ฉ๋ด์ Upload to Provider ์ต์
์ ํตํด ๋ฌธ์๋ฅผ ๊ณต๊ธ์์๊ฒ ์ง์ ์
๋ก๋ํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ๋ฌธ์๋ ๊ธฐ๋ณธ ๋ฌธ์ ์ฒจ๋ถ ํ์ผ๋ก์ Bedrock Converse API๋ก ์ ์ก๋ฉ๋๋ค.
์ง์๋๋ ํ์: PDF, CSV, DOC, DOCX, XLS, XLSX, HTML, TXT ๋ฐ Markdown (.md)
์ ํ ์ฌํญ:
- ๋ฌธ์๋น ์ต๋ ํ์ผ ํฌ๊ธฐ: 4.5 MB
- ํ์ผ ์ด๋ฆ์ Bedrock์ ๋ช ๋ช ๊ท์น(์์ซ์, ๊ณต๋ฐฑ, ํ์ดํ, ๊ดํธ, ๋๊ดํธ; ์ต๋ 200์)์ ์ค์ํ๋๋ก ์๋์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค.
ํ์ผ ์ ๋ก๋ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ OCR for Documents ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ ์ฌํญ
-
๋ค์ ๋ชจ๋ธ๋ค์ ์คํธ๋ฆฌ๋ฐ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ ์ง์๋์ง ์์ต๋๋ค:
- ai21.j2-mid-v1
-
๋ค์ ๋ชจ๋ธ๋ค์ ๋ํ ๊ธฐ๋ก ์ง์์ด ๋ถ์กฑํ์ฌ ์ง์๋์ง ์์ต๋๋ค:
- ai21.j2-ultra-v1
- cohere.command-text-v14
- cohere.command-light-text-v14
-
AWS Bedrock endpoint๋
librechat.yaml๊ตฌ์ฑ ํ์ผ์ ํตํดstreamRate,titleModel,titleMethod,titlePrompt,titlePromptTemplate,titleEndpoint๋ฅผ ํฌํจํ ๋ชจ๋ Shared Endpoint Settings์ ์ง์ํฉ๋๋ค.
์ด ๊ฐ์ด๋๋ ์ด๋ค๊ฐ์?