또 다른 지능형 비서(YAIA)
다양한 도구에 액세스할 수 있는 multimodal chat 인터페이스입니다.
설명
YAIA는 고급 AI 모델을 기반으로 하고 다양한 도구를 갖춘 정교한 multimodal chat 인터페이스입니다. 다음을 수행할 수 있습니다.
- 실시간으로 웹 검색 및 탐색
- 정보를 보려면 Wikipedia에 문의하세요.
- 뉴스 및 지도 검색 수행
- 차트, 다이어그램 등의 텍스트와 이미지를 생성할 수 있는 Python 코드를 안전하게 실행합니다.
- 텍스트와 이미지가 혼합된 장문의 기사 작성
- 이미지 생성, 검색 및 비교
- 문서 및 이미지 분석
- arXiv 논문 검색 및 다운로드
- 대화를 생성하고 텍스트 및 오디오 파일로 저장
- 출력 디렉터리에 파일 저장
- 개인 개선 사항 추적
- 작업 추적을 위한 체크리스트 관리
건축학
주요 구성 요소는 다음과 같습니다.
- 웹 인터페이스용 Gradio 5
- 대화 및 도구 사용을 처리하는 Amazon Bedrock
- Anthropic Claude 3.5 소네트를 메인 모델로
- Amazon Titan 텍스트 및 다중 모달 임베딩 모델
- Amazon Titan 이미지 생성기
- 텍스트 및 다중 모드 인덱스를 위한 OpenSearch
- 음성용 Amazon Polly
- 코드 해석기를 위한 AWS Lambda
예
다양한 도구를 사용하는 방법의 예는 다음과 같습니다.
웹 검색 : "양자 컴퓨팅의 최신 발전을 웹에서 검색하세요."
Wikipedia : "인공지능의 역사에 관한 Wikipedia 기사를 찾아보세요."
Python 스크립팅 : "Python 스크립트를 만들어 국가별 전 세계 CO2 배출량에 대한 막대 차트를 생성하세요."
스케치북 : "새 스케치북을 시작하고 수치적 방법으로 Pi를 계산하는 방법에 대한 소개를 작성하세요."
이미지 생성 : "하늘을 나는 자동차와 높은 빌딩이 있는 미래 도시의 이미지를 생성합니다."
이미지 검색 : "멸종위기종 사진을 이미지 카탈로그에서 검색하세요."
arXiv 통합 : "자연어 처리 분야의 딥러닝에 관한 최근 연구 논문을 검색하세요."
대화 생성 : "다중 모드 RAG 설정 방법을 논의하는 세 명의 전문가 사이의 대화를 만듭니다."
파일 관리 : "기후 변화에 관한 논의 요약을 'climate_change_summary.txt'라는 파일에 저장하세요."
개인적인 개선 : "개선할 제안은 다음과 같습니다. 답변을 개선하려면 공식 소스를 검색하세요."
체크리스트 : "작업 목록을 하나씩 따라가려면 새 체크리스트를 시작하세요."
주요 기능 및 도구
웹 상호작용 :
- DuckDuckGo 텍스트 검색: 웹 검색을 수행합니다.
- DuckDuckGo 뉴스 검색: 최근 뉴스 기사를 검색합니다.
- DuckDuckGo 지도 검색: 위치 및 업체 검색
- DuckDuckGo 이미지 검색: 공개적으로 사용 가능한 이미지를 검색합니다.
- 웹 브라우저: 웹사이트를 탐색하고 해당 콘텐츠를 검색합니다.
위키피디아 도구 :
- Wikipedia 검색: 관련 Wikipedia 페이지를 찾습니다.
- Wikipedia 지리 데이터 검색: 지리적 위치별로 Wikipedia 기사를 찾습니다.
- Wikipedia 페이지 검색기: 전체 Wikipedia 페이지 콘텐츠를 가져옵니다.
Python 스크립팅 :
- 텍스트와 이미지를 포함한 계산, 테스트 및 출력 생성을 위해 Python 스크립트를 실행합니다.
- Python 모듈을 Python 인터프리터에 추가할 수 있습니다.
- Python 코드는 AWS Lambda가 제공하는 보안 환경에서 실행됩니다.
콘텐츠 관리 :
- 개인 아카이브: 의미 체계 데이터베이스를 사용하여 텍스트, 마크다운 또는 HTML 콘텐츠를 저장하고 검색합니다.
- 스케치북: 긴 형식의 콘텐츠를 작성하고 검토하기 위한 여러 페이지로 구성된 스케치북을 관리합니다. 다양한 출력 형식을 지원합니다:
- Markdown(.md): 쉽게 읽고 편집할 수 있습니다.
- Word 문서(.docx): 문서 편집용
이미지 처리 :
- 이미지 생성: 텍스트 프롬프트를 기반으로 이미지를 생성합니다.
- 이미지 카탈로그 검색: 설명으로 이미지를 검색합니다.
- 이미지 유사성 검색: 참조 이미지를 기반으로 유사한 이미지를 찾습니다.
- 임의 이미지: 카탈로그에서 임의의 이미지를 검색합니다.
- ID로 이미지 가져오기: 해당 ID를 사용하여 카탈로그에서 특정 이미지를 검색합니다.
- 이미지 카탈로그 수: 카탈로그에 있는 총 이미지 수를 반환합니다.
- 이미지 다운로드: URL의 이미지를 카탈로그에 추가합니다.
arXiv 통합 :
- arXiv 논문 검색 및 다운로드
- 쉽게 검색할 수 있도록 종이 콘텐츠를 아카이브에 저장
대화 생성 :
- 콘텐츠를 2~4명의 대화로 변환
- 텍스트 음성 변환을 사용하여 대화용 오디오 파일 생성
파일 관리 :
- 파일 저장: 출력 디렉터리에 지정된 이름을 가진 파일에 텍스트 콘텐츠를 저장할 수 있습니다.
개인 개선 :
체크리스트 :
- 항목을 추가하고, 완료로 표시하고, 진행 상황을 검토하는 기능으로 작업 목록을 관리합니다.
사용 가능한 도구 및 사용법의 전체 목록은 ./Config/tools.json
을 참조하세요.
요구사항
- 컨테이너 도구: Docker 또는 Finch(Finch를 설치하려면 여기 지침을 따르세요)
- Python 3.12 이상
- Amazon Bedrock, AWS Lambda 및 Amazon ECR에 액세스할 수 있는 적절한 권한이 있는 AWS 계정
설치
저장소를 복제합니다.
git clone https://github.com/danilop/multimodal-chat
cd multimodal-chat
가상 환경 생성 및 활성화(선택 사항이지만 권장됨):
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
필수 패키지를 설치합니다:
pip install -r requirements.txt
코드 실행을 위해 AWS Lambda 함수를 설정합니다.
cd LambdaFunction
./deploy_lambda_function.sh
cd ..
웹 브라우징에 Selenium을 사용하려면 ChromeDriver를 설치하십시오. 홈브루 사용:
brew install --cask chromedriver
오디오를 출력하려면 ffmpeg
설치하세요. 홈브루 사용:
OpenSearch 설정
로컬 OpenSearch 인스턴스를 사용하거나 원격 서버에 연결할 수 있습니다. 로컬 설정의 경우:
OpenSearch 디렉터리로 이동합니다.
관리자 비밀번호를 설정하세요(최초 설정). 이 단계에서는 .env
파일과 opensearch_env.sh
파일이 생성됩니다.
OpenSearch를 로컬로 시작합니다( .env
파일에 대한 액세스가 필요함).
출력을 확인하여 OpenSearch(노드 2개 + 대시보드)가 올바르게 시작되는지 확인하세요.
OpenSearch를 업데이트하려면 다음 스크립트를 사용하여 새 컨테이너 이미지를 다운로드하세요.
원격 서버 설정의 경우 기본 스크립트에서 클라이언트 생성 코드를 업데이트하세요.
비밀번호를 변경하려면 finch
또는 docker
컨테이너를 삭제한 후 새 비밀번호를 설정해야 합니다.
용법
텍스트, 이미지 및 임베딩에 대한 기본 모델은 Config/config.ini
파일에 있습니다. 사용할 모델은 Amazon Bedrock 모델 ID 또는 지역 간 추론 프로필 ID를 사용하여 지정됩니다. 기본 모델 액세스에 설명된 대로 이러한 모델에 대한 권한과 액세스가 필요합니다.
이 섹션에서는 앞서 설명한 대로 OpenSearch가 다른 터미널 창에서 로컬로 실행되고 있다고 가정합니다.
OpenSearch 관리자 비밀번호를 환경에 로드합니다.
source OpenSearch/opensearch_env.sh
애플리케이션을 실행합니다.
python multimodal_chat.py
텍스트 및 다중 모달 인덱스를 재설정하려면(참고: ./Images/
의 이미지는 삭제되지 않음):
python multimodal_chat.py --reset-index
웹 브라우저를 열고 http://127.0.0.1:7860/으로 이동하여 채팅을 시작하세요.
데모 비디오
다음은 이 애플리케이션을 수행할 수 있는 작업에 대한 몇 가지 예입니다.
인터넷을 검색하고 의미론적 아카이브를 사용하세요.
이 데모에서는:
- Selenium과 DuckDuckGo(검색, 뉴스, 지리 검색) 및 Wikipedia용 특정 도구를 사용하여 웹사이트를 탐색하세요.
- 의미론적 텍스트 아카이브 도구를 사용하여 문서를 아카이브하고 키워드로 검색
이미지 가져오기 및 검색
이 데모에서는:
- 다중 모달 인덱스와 로컬 파일 시스템을 사용하여 이미지 카탈로그 관리
- 생성된 설명과 함께 이미지 저장
- 텍스트 설명으로 이미지 검색(의미 검색)
- 다른 이미지와의 유사성을 기준으로 이미지 검색
- 임의의 이미지 검색
이미지 생성 및 검색
이 데모에서는:
- 텍스트 설명에서 이미지 생성
- 텍스트-이미지 프롬프트는 채팅 지침에서 생성됩니다.
- 이 접근 방식을 사용하면 전반적인 대화를 사용하여 프롬프트를 개선할 수 있습니다.
Python 코드 인터프리터
이 데모에서는:
- AI 생성 코드를 실행하여 문제 해결
- 기본 권한으로 AWS Lambda 함수에서 보안을 위해 실행
- Python 모듈을 쉽게 추가하기 위해 컨테이너 이미지를 통해 배포됨
- Python 전용이지만 쉽게 확장 가능
"스케치북"에 글쓰기
이 데모에서는:
- 기사, 블로그 게시물 등 긴 형식의 텍스트를 작성하는 데 도움이 되는 도구)
- 페이지에 분할된 텍스트에 대한 순차적 액세스 제공
- 모델 입력 크기와 출력 크기 간의 "비대칭"을 완화하려면
Python 코드 리뷰가 포함된 스케치북
이 데모에서는:
- 둘 이상의 도구를 함께 사용하면 최상의 결과를 얻을 수 있습니다
- 긴 글을 쓰려면 스케치북부터 시작하세요
- 기사에 코드 조각이 포함되어 있습니다.
- 검토는 모든 코드 조각을 실행 및 테스트하고 각 페이지를 업데이트하여 코드를 수정하고(필요한 경우) 실제 결과를 추가합니다.
문제 해결
- OpenSearch에 문제가 발생하면 연결 설정을 확인하고 서비스가 실행 중인지 확인하세요.
- AWS Lambda 함수 오류의 경우 AWS 자격 증명 및 권한을 확인하세요.
- 이미지 처리가 실패하면 필요한 라이브러리가 설치되어 있는지 확인하고 파일 권한을 확인하세요.
기여
YAIA에 대한 기여를 환영합니다! 끌어오기 요청 제출, 문제 보고 또는 기능 요청 방법에 대한 자세한 내용은 기여 지침을 참조하세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
사용 팁
- 복잡한 작업을 위해 여러 도구를 결합합니다. 예를 들어, 웹 검색을 사용하여 정보를 찾은 다음 스케치북을 사용하여 요약을 작성하고 마지막으로 주제에 대한 대화를 생성합니다.
- 이미지 작업 시 새 이미지를 생성하거나, 기존 이미지를 검색하거나, 웹에서 이미지를 다운로드하여 카탈로그에 추가할 수 있습니다.
- arXiv 통합을 사용하여 관심 분야의 최신 연구를 최신 상태로 유지하세요.
- 대화 생성 도구는 흥미로운 콘텐츠를 만들거나 프레젠테이션을 준비하는 데 유용합니다.
- 개인의 개선 사항을 정기적으로 확인하고 업데이트하여 진행 상황과 성장 영역을 추적하세요.
특정 구성 요소나 고급 사용법에 대한 자세한 내용은 소스 코드의 인라인 설명서를 참조하세요.