Chainlit: 확장 가능한 대화형 AI 프레임워크
Chainlit은 강력하고 확장 가능한 대화형 AI 애플리케이션을 구축하기 위해 설계된 오픈 소스 비동기 Python 프레임워크입니다. 개발자가 외부 API, 사용자 정의 논리 및 로컬 모델을 원활하게 통합할 수 있도록 유연한 기반을 제공합니다.
이 튜토리얼은 Chainlit 내에서 두 가지 RAG(Retrieval Augmented Generation) 구현을 보여줍니다.
로컬 Chainlit 설정
가상 환경 만들기:
<code class="language-bash">mkdir chainlit && cd chainlit python3 -m venv venv source venv/bin/activate</code>
필수 패키지 설치 및 종속성 저장:
<code class="language-bash">pip install chainlit pip install llama_index # For implementation #2 pip install openai pip freeze > requirements.txt</code>
Chainlit 시작:
<code class="language-bash">chainlit hello</code>
https://www.php.cn/link/2674cea93e3214abce13e072a2dc2ca5
에서 자리 표시자에 액세스하세요.업선 배포
Git 저장소 초기화:
<code class="language-bash">git init .</code>
.gitignore
파일 만들기:
<code>.env database/** data/** storage/** .chainlit venv __pycache__</code>
CLI를 사용하여 Upsun 프로젝트를 생성합니다(안내를 따르세요). Upsun은 원격 저장소를 자동으로 구성합니다.
Chainlit을 위한 Upsun 구성 예:
<code class="language-yaml">applications: chainlit: source: root: "/" type: "python:3.11" mounts: "/database": source: "storage" source_path: "database" ".files": source: "storage" source_path: "files" "__pycache__": source: "storage" source_path: "pycache" ".chainlit": source: "storage" source_path: ".chainlit" web: commands: start: "chainlit run app.py --port $PORT --host 0.0.0.0" upstream: socket_family: tcp locations: "/": passthru: true "/public": passthru: true build: flavor: none hooks: build: | set -eux pip install -r requirements.txt deploy: | set -eux # post_deploy: | routes: "https://{default}/": type: upstream upstream: "chainlit:http" "https://www.{default}": type: redirect to: "https://{default}/"</code>
Upsun CLI를 통해 OPENAI_API_KEY
환경 변수를 설정합니다.
<code class="language-bash">upsun variable:create env:OPENAI_API_KEY --value=sk-proj[...]</code>
커밋 및 배포:
<code class="language-bash">git add . git commit -m "First chainlit example" upsun push</code>
배포 상태를 검토합니다. 배포가 성공하면 기본 환경에서 Chainlit이 실행되고 있는 것으로 표시됩니다.
구현 1: OpenAI Assistant 및 업로드된 파일
이 구현에서는 OpenAI 도우미를 사용하여 업로드된 문서를 처리합니다.
OpenAI 플랫폼에서 새로운 OpenAI 도우미를 만듭니다. 시스템 지침을 설정하고, 모델을 선택하고(텍스트 응답 형식 포함), 온도를 낮게(예: 0.10) 유지하세요. 어시스턴트 ID(asst_[xxx]
)를 복사하고 환경 변수로 설정합니다.
<code class="language-bash">upsun variable:create env:OPENAI_ASSISTANT_ID --value=asst_[...]</code>
문서를 어시스턴트에게 업로드하세요(마크다운 선호). OpenAI가 벡터 스토어를 생성합니다.
app.py
콘텐츠를 제공된 코드로 바꿉니다. 주요 부분: @cl.on_chat_start
은 새로운 OpenAI 스레드를 생성하고, @cl.on_message
은 스레드에 사용자 메시지를 보내고 응답을 스트리밍합니다.
변경 사항을 커밋하고 배포합니다. 어시스턴트를 테스트해보세요.
구현 2: OpenAI llama_index
이 구현에서는 지역 지식 관리에 llama_index를 사용하고 응답 생성에 OpenAI를 사용합니다.
새 브랜치 만들기:
<code class="language-bash">mkdir chainlit && cd chainlit python3 -m venv venv source venv/bin/activate</code>
data
및 storage
폴더를 만듭니다. Upsun 구성에 마운트를 추가하세요.
제공된 llama_index 코드로 app.py
을 업데이트하세요. 이 코드는 문서를 로드하고 VectorStoreIndex를 생성하며 이를 사용하여 OpenAI를 통해 쿼리에 응답합니다.
새 환경을 배포하고 data
폴더를 업로드합니다. 애플리케이션을 테스트해 보세요.
보너스: 인증
SQLite 데이터베이스를 사용하여 인증을 추가합니다.
database
폴더를 생성하고 Upsun 구성에 마운트를 추가합니다. 데이터베이스 경로에 대한 환경 변수를 만듭니다.
<code class="language-bash">pip install chainlit pip install llama_index # For implementation #2 pip install openai pip freeze > requirements.txt</code>
app.py
을 사용하여 @cl.password_auth_callback
에 인증 논리를 추가합니다. 로그인 양식이 추가됩니다.
해시된 비밀번호를 생성하는 스크립트를 만듭니다. 해시된 비밀번호를 사용하여 데이터베이스에 사용자를 추가합니다. 인증 및 테스트 로그인을 배포합니다.
결론
이 튜토리얼에서는 두 가지 RAG 구현 및 인증을 사용하여 Upsun에 Chainlit 애플리케이션을 배포하는 방법을 보여주었습니다. 유연한 아키텍처 덕분에 다양한 조정과 통합이 가능합니다.
위 내용은 Upsun에서 RAG를 사용하여 Chainlit AI 인터페이스 실험의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!