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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

정규 표현식은 프로그래밍의 패턴 일치 및 텍스트 조작을위한 강력한 도구이며 다양한 응용 프로그램에서 텍스트 처리의 효율성을 높입니다.

Uvicorn은 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 ASGI를 기반으로 한 가벼운 웹 서버입니다. 핵심 기능 중 하나는 HTTP 요청을 듣고 진행하는 것입니다 ...

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

파이썬에서 문자열을 통해 객체를 동적으로 생성하고 메소드를 호출하는 방법은 무엇입니까? 특히 구성 또는 실행 해야하는 경우 일반적인 프로그래밍 요구 사항입니다.
