
이 샘플이 마음에 들면 Github에 별을주십시오. 많은 도움이됩니다!
개요 • 시작하기 • 샘플 실행 • 리소스 • FAQ • 문제 해결

이 샘플은 langchain.js 및 azure를 사용하여 검색 된 생성을 사용하여 서버리스 AI 채팅 경험을 구축하는 방법을 보여줍니다. 이 응용 프로그램은 Azure 정적 웹 앱 및 Azure 기능에서 호스팅되며 NOSQL 용 Azure Cosmos DB를 벡터 데이터베이스로 사용합니다. 보다 복잡한 AI 응용 프로그램을 구축하기위한 시작점으로 사용할 수 있습니다.
팁
Ollama를 사용하여 비용 없이이 응용 프로그램을 로컬로 테스트 할 수 있습니다. 현지 개발 섹션의 지침을 따라 시작하려면 시작하십시오.
AI 애플리케이션 구축은 복잡하고 시간이 많이 걸릴 수 있지만 Langchain.js 및 Azure Server없는 기술을 사용하면 프로세스를 크게 단순화 할 수 있습니다. 이 응용 프로그램은 엔터프라이즈 문서 세트를 사용하여 사용자 쿼리에 대한 응답을 생성하는 챗봇입니다.
우리는이 샘플을 시도 할 수 있도록 샘플 데이터를 제공하지만 자유롭게 교체하십시오. 우리는 Contoso Real Estate 라는 가상 회사를 사용하며,이 경험을 통해 고객은 제품 사용에 대한 지원 질문을 할 수 있습니다. 샘플 데이터에는 서비스 약관, 개인 정보 보호 정책 및 지원 안내서를 설명하는 문서 세트가 포함되어 있습니다.

이 응용 프로그램은 여러 구성 요소로 만들어집니다.
Azure 정적 웹 앱에서 조명으로 구축 된 단일 채팅 웹 구성 요소로 만든 웹 앱. 이 코드는 packages/webapp 아프 폴더에 있습니다.
Azure 함수로 구축 된 서버리스 API와 Langchain.js를 사용하여 문서를 수집하고 사용자 채팅 쿼리에 대한 응답을 생성합니다. 코드는 packages/api 폴더에 있습니다.
NOSQL 용 Azure Cosmos DB를 사용하여 Langchain.js에서 생성 한 문서와 벡터에서 추출한 텍스트를 저장하는 데이터베이스.
Azure Blob Storage를 사용하여 소스 문서를 저장하는 파일 저장소.
AI 채팅 앱에 HTTP 프로토콜을 사용하여 웹 앱과 API간에 통신합니다.
이 프로젝트를 시작하는 방법에는 여러 가지가 있습니다.
가장 빠른 방법은 미리 구성된 환경을 제공하는 github 코드 스페이스를 사용하는 것입니다. 또는 아래 지침에 따라 지역 환경을 설정할 수 있습니다.
중요한
Ollama를 사용 하여이 샘플을 전체적으로 로컬로 실행하려면 로컬 환경 섹션의 지침을 따라야합니다.
로컬 컴퓨터에서 작동하려면 다음 도구를 설치해야합니다.
pwsh.exe 실행할 수 있는지 확인하십시오. 이것이 실패하면 PowerShell을 업그레이드해야 할 것입니다.그런 다음 프로젝트 코드를 얻을 수 있습니다.

git clone <your-repo-url> 복제하십시오.웹 기반 대 코드를 열게되는 GitHub 코드 스페이스를 사용하여 브라우저 에서이 프로젝트를 직접 실행할 수 있습니다.
Codespace와 유사한 옵션은 VS Code Dev 컨테이너이며, Dev 컨테이너 확장을 사용하여 로컬 대 코드 인스턴스에서 프로젝트를 열게됩니다.
컨테이너를 실행하려면 기계에 Docker를 설치해야합니다.
이 샘플을 실행하는 방법에는 여러 가지가 있습니다 : Ollama 또는 Azure Openai 모델을 사용하거나 Azure에 배치하여.
Microsoft.Authorization/roleAssignments/write 권한이 있어야 역할 기반 액세스 제어 관리자, 사용자 액세스 관리자 또는 소유자가 있어야합니다. 가입 수준의 권한이없는 경우 기존 리소스 그룹에 대한 RBAC가 부여되어 기존 그룹에 배포해야합니다.Microsoft.Resources/deployments/write 권한이 필요합니다. Azure 에서이 샘플을 실행하려는 비용 추정 세부 사항을 참조하십시오.
azd auth login 실행하여 Azure로 인증하십시오.azd up 하여 응용 프로그램을 Azure에 배포하십시오. 이렇게하면 Azure 리소스를 제공 하고이 샘플을 배포하며 ./data 폴더에있는 파일을 기반으로 검색 색인을 작성합니다.eastus2 선택하십시오.eastus2 에 배포됩니다. azd env set AZURE_OPENAI_RESOURCE_GROUP_LOCATION <location> 로 다른 위치를 설정할 수 있습니다. 현재 짧은 위치 목록 만 허용됩니다. 이 위치 목록은 OpenAI 모델 가용성 테이블을 기반으로하며 가용성이 변경됨에 따라 구식이 될 수 있습니다.배포 프로세스는 몇 분이 걸립니다. 완료되면 터미널에 웹 앱의 URL이 표시됩니다.

이제 브라우저에서 웹 앱을 열고 봇과 채팅을 시작할 수 있습니다.
엔터프라이즈 컨텍스트에서 샘플을 배포 할 때는 데이터 및 리소스를 보호하기 위해 더 엄격한 보안 제한을 시행 할 수 있습니다. 자세한 내용은 Enhance Security Guide를 참조하십시오.
이 샘플에서 생성 된 모든 Azure 리소스를 정리하려면 다음과 같습니다.
azd down --purge 실행하십시오y 입력하십시오.리소스 그룹과 모든 리소스가 삭제됩니다.
충분한 리소스가있는 기계가있는 경우 클라우드 리소스를 사용하지 않고도이 샘플을 전체적으로 로컬로 실행할 수 있습니다. 그렇게하려면 먼저 Ollama를 설치 한 다음 다음 명령을 실행하여 컴퓨터에서 모델을 다운로드해야합니다.
ollama pull mistral:v0.2
ollama pull all-minilm:l6-v2메모
몇 기가 바이트의 데이터를 다운로드 한 mistral 모델이므로 인터넷 연결에 따라 시간이 걸릴 수 있습니다.
그런 다음 NPM 종속성을 설치해야합니다.
npm install그런 다음 웹 앱과 API를 로컬로 시작하는 다음 명령을 실행하여 응용 프로그램을 시작할 수 있습니다.
npm start 그런 다음 동시에 실행되는 새 터미널을 열고 다음 명령을 실행하여 /data 폴더에서 API로 PDF 문서를 업로드하십시오.
npm run upload:docs더 많은 문서를 추가하지 않는 한 이것은 한 번만 수행해야합니다.
이제 브라우저에서 URL http://localhost:8000 열어 봇과 채팅을 시작할 수 있습니다.
메모
로컬 모델은 일반적으로 질문에 대답 할 수있을 정도로 잘 작동하지만 때로는 인용 및 후속 질문에 대한 고급 서식 지침을 완벽하게 따르지 않을 수도 있습니다. 이것은 예상되고 작은 로컬 모델을 사용하는 한계가 있습니다.
먼저 샘플을 실행하는 데 필요한 Azure 리소스를 제공해야합니다. 샘플 배포 Azure 섹션의 지침을 따라 샘플을 Azure에 배치 한 다음 배포 된 Azure 리소스를 사용하여 샘플을 로컬로 실행할 수 있습니다.
배포가 완료되면 packages/api 폴더에 .env 파일이 표시됩니다. 이 파일에는 Azure Resources를 사용하여 응용 프로그램을 실행하는 데 필요한 환경 변수가 포함되어 있습니다.
샘플을 실행하려면 Ollama 설정과 동일한 명령을 사용할 수 있습니다. 웹 앱과 API가 로컬로 시작됩니다.
npm start 브라우저에서 URL http://localhost:8000 열어 봇과 채팅을 시작하십시오.
샘플을 azd up 으로 Azure에 배포 할 때 문서가 자동으로 업로드됩니다.
팁
packages/api/.env 파일을 삭제하고 응용 프로그램을 다시 시작하여 Ollama 모델 사용으로 다시 전환 할 수 있습니다. .env 파일을 재생하려면 azd env get-values > packages/api/.env 실행할 수 있습니다.
이 샘플에 사용 된 기술에 대해 자세히 알아볼 수있는 몇 가지 리소스는 다음과 같습니다.
여기에서 더 많은 Azure AI 샘플을 찾을 수 있습니다.
FAQ에서 자주 묻는 질문에 대한 답변을 찾을 수 있습니다.
이 샘플을 실행하거나 배포 할 때 문제가 있으면 문제 해결 안내서를 확인하십시오. 문제에 대한 해결책을 찾을 수 없으면이 저장소에서 문제를 열어주십시오.
이 샘플 사용 방법에 대한 자세한 내용은 튜토리얼을 참조하십시오.
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기부금은 귀하가 귀하가 귀하의 기부금을 사용할 권리를 부여 할 권리가 있다고 선언하는 기고자 라이센스 계약 (CLA)에 동의해야합니다. 자세한 내용은 https://cla.opensource.microsoft.com을 방문하십시오.
풀 요청을 제출할 때 CLA 봇은 CLA를 제공하고 PR을 적절하게 장식 해야하는지 자동으로 결정합니다 (예 : 상태 점검, 댓글). 봇이 제공 한 지침을 따르십시오. CLA를 사용하여 모든 저장소에서 한 번만이 작업을 수행하면됩니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령을 채택했습니다. 자세한 내용은 추가 질문이나 의견이 있으면 행동 강령 FAQ 또는 [email protected]에 문의하십시오.
이 프로젝트에는 프로젝트, 제품 또는 서비스에 대한 상표 또는 로고가 포함될 수 있습니다. Microsoft 상표 또는 로고의 승인 된 사용에는 Microsoft의 상표 및 브랜드 지침이 적용되며 따라야합니다. 이 프로젝트의 수정 된 버전에서 Microsoft 상표 또는 로고를 사용한다고해서 혼란을 일으키거나 Microsoft 후원을 암시해서는 안됩니다. 타사 상표 또는 로고를 사용하면 타사 정책이 적용됩니다.