중국어
SwiftChat은 React Native로 개발되고 Amazon Bedrock에서 제공하는 빠르고 반응이 빠른 AI 채팅 애플리케이션입니다. 미니멀리스트 디자인 철학과 강력한 개인 정보 보호 기능을 통해 Android, iOS 및 macOS 플랫폼 전반에 걸쳐 실시간 스트리밍 대화 및 AI 이미지 생성 기능을 제공합니다.
주요 특징:
기본적으로 우리는 Python FastAPI 서버를 호스팅하는 데 일반적으로 사용되는 AWS App Runner를 사용하여 고성능, 확장성 및 짧은 지연 시간을 제공합니다.
또는 이 예에 표시된 것처럼 보다 비용 효율적인 솔루션을 위해 함수 URL을 사용하여 App Runner를 AWS Lambda 로 대체하는 옵션을 제공합니다.
Amazon Bedrock 기반 모델에 액세스할 수 있는지 확인하십시오. SwiftChat 기본 설정은 다음과 같습니다.
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
모델을 활성화하려면 Amazon Bedrock 사용 설명서를 따르십시오.
AWS 콘솔에 로그인하고 Parameter Store를 마우스 오른쪽 버튼으로 클릭하여 새 탭에서 엽니다.
지원되는 지역에 있는지 확인한 후 매개변수 생성 버튼을 클릭하세요.
아래 매개변수를 입력하고 다른 옵션은 기본값으로 둡니다.
Name : 매개변수 이름을 입력합니다(예: "SwiftChatAPIKey"는 2단계에서 ApiKeyParam
으로 사용됩니다).
유형 : SecureString
선택
값 : 공백 없이 임의의 문자열을 입력하세요.(3단계에서 API Key
됩니다.)
매개변수 생성 을 클릭합니다.
API 키가 생성된 동일한 지역에서 CloudFormation 스택을 시작하려면 다음 버튼 중 하나를 클릭하세요.
앱 러너
Lambda (참고: AWS 고객 전용)
다음을 클릭하고 "스택 세부 정보 지정" 페이지에서 다음 정보를 제공합니다.
ApiKeyParam
을 채웁니다.InstanceTypeParam
을 선택합니다.다음을 클릭하고 "스택 옵션 구성" 페이지를 기본값으로 유지하고 기능을 읽고 하단의 "AWS CloudFormation에서 IAM 리소스를 생성할 수 있음을 확인합니다" 확인란을 선택합니다.
다음을 클릭하고 "검토 및 생성"에서 구성을 검토하고 제출을 클릭합니다.
배포가 완료될 때까지 3~5분 정도 기다린 후 CloudFormation 스택을 클릭하고 출력 탭으로 이동하면 https://xxx.xxx.awsapprunner.com
또는 https://xxx.lambda-url.xxx.on.aws
와 같은 API URL을 찾을 수 있습니다. https://xxx.lambda-url.xxx.on.aws
앱 다운로드
앱을 실행하고 서랍 메뉴를 열고 설정을 탭하세요.
API URL
과 API Key
붙여넣은 후 지역을 선택하세요.
오른쪽 상단 ✓ 아이콘을 클릭하여 구성을 저장하고 채팅을 시작하세요.
축하해요 ? SwiftChat 앱을 사용할 준비가 되었습니다!
Claude 3 Haiku
활성화되어 있는지 확인하세요) 빠른 실행 속도
빠른 요청 속도
빠른 렌더링 속도
useMemo
및 사용자 정의 캐싱을 사용하여 세션 콘텐츠에 대한 보조 캐시 생성? 빠른 저장 속도
먼저 이 저장소를 복제하세요. 모든 앱 코드는 react-native
폴더에 있습니다. 계속하기 전에 다음 명령을 실행하여 종속성을 다운로드하세요.
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
/src/App.tsx
에서 isMac = true
로 수정하고 npm start
실행합니다.ios/SwiftChat.xcworkspace
두 번 클릭하여 Xcode에서 프로젝트를 엽니다.My Mac (Mac Catalyst)
으로 변경한 후 ▶ 실행 버튼을 클릭합니다. 먼저 API URL
과 API Key
다음과 같이 구성하십시오.
export API_URL= < API URL >
export API_KEY= < API Key >
/api/converse
curl -N " ${API_URL} /api/converse "
--header ' Content-Type: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"messages": [
{
"role": "user",
"content": [
{
"text": "Hi"
}
]
}
],
"modelId": "anthropic.claude-3-5-sonnet-20240620-v1:0",
"region": "us-west-2"
} '
이 API는 스트리밍 대화를 구현하는 데 사용되며 표시할 텍스트 및 토큰 사용량만 반환합니다.
본문 아래의 messages
Amazon Bedrock 대화 스트림 API의 메시지 구조 사양을 완전히 준수합니다. 사양에 따라 image
나 document
추가하여 다중 모달 대화를 지원할 수도 있습니다.
/api/image
curl " ${API_URL} /api/image "
--header ' Content-Type: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"prompt": "Beautiful countryside",
"modelId": "stability.stable-image-core-v1:0",
"region": "us-west-2",
"width": "1024",
"height": "1024"
} '
이 API는 이미지를 생성하고 이미지의 base64 인코딩 문자열을 반환하는 데 사용됩니다.
/api/models
curl " ${API_URL} /api/models "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"region": "us-west-2"
} '
이 API는 지정된 지역의 모든 스트리밍 지원 텍스트 모델 및 이미지 생성 모델 목록을 가져오는 데 사용됩니다.
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
이 API는 Android 및 macOS 앱 업데이트용 SwiftChat의 새 버전을 가져오는 데 사용됩니다.
클라이언트 코드: bedrock-api.ts
서버 코드: main.py
참고 : 새 버전을 다운로드한 후 릴리스 노트를 확인하여 API 버전 업데이트가 필요한지 확인하세요.
swiftchat-api
찾아서 열고, 오른쪽 상단의 배포 버튼을 클릭하세요.SwiftChatLambda-xxx
로 시작하는 Lambda를 찾아 열고 새 이미지 배포 버튼을 클릭한 후 저장을 클릭합니다. 자세한 내용은 기여를 참조하세요.
이 라이브러리는 MIT-0 라이선스에 따라 라이선스가 부여됩니다. 라이센스 파일을 참조하십시오.