여러 LLM에 액세스하기 위해 하나의 API를 사용하여 AI 챗봇을 만드는 방법
원래 Liz Acosta의 Streamlit 블로그에 게시됨
AI 이미지 생성기를 처음으로 가지고 놀았을 때 얼마나 멋졌는지 기억하시나요? 그 2천만 개의 손가락과 악몽 같은 스파게티를 먹는 모습은 단순한 재미를 넘어, 무심코 드러낸 앗! AI 모델은 우리만큼 똑똑합니다. 우리처럼 그들도 손을 그리는 데 어려움을 겪습니다.
AI 모델은 빠르게 정교해졌지만 이제는 그 수가 너무 많습니다. 그리고 – 다시 – 우리처럼 그들 중 일부는 다른 사람들보다 특정 작업을 더 잘합니다. 예를 들어 텍스트 생성을 생각해 보십시오. Llama, Gemma 및 Mistral은 모두 LLM이지만 일부는 코드 생성에 더 능숙하고 다른 일부는 브레인스토밍, 코딩 또는 창의적 글쓰기에 더 뛰어납니다. 프롬프트에 따라 다양한 이점을 제공하므로 AI 애플리케이션에 두 개 이상의 모델을 포함하는 것이 합리적일 수 있습니다.
그런데 어떻게 이 모든 모델을 중복 코드 없이 앱에 통합할 수 있을까요? AI를 보다 모듈식으로 사용하여 유지 관리 및 확장을 더 쉽게 만들려면 어떻게 해야 합니까? 이것이 바로 API가 다양한 기술 간 통신을 위한 표준화된 지침 세트를 제공할 수 있는 곳입니다.
이 블로그 게시물에서는 Replicate with Streamlit을 사용하여 단일 API 호출로 다양한 LLM을 구성하고 메시지를 표시할 수 있는 앱을 만드는 방법을 살펴보겠습니다. 그리고 걱정하지 마십시오. 제가 "앱"이라고 말할 때 전체 Flask 서버를 가동해야 하거나 지루하게 경로를 구성해야 하거나 CSS에 대해 걱정해야 한다는 의미는 아닙니다. Streamlit이 이를 해결해 드릴까요?
계속 읽어보세요.
- 복제란
- 스트림라이트란 무엇인가
- 데모 복제 챗봇 Streamlit 앱 구축 방법
- 복제 사용 모범 사례
읽고 싶지 않으신가요? 이 데모를 탐색할 수 있는 다른 방법은 다음과 같습니다.
- 여기 Streamlit Cookbook 저장소에서 코드를 찾으세요.
- 여기에서 배포된 앱 버전을 사용해 보세요.
- 여기에서 Replicate 창립 디자이너 Zeke Sikelianos의 동영상 둘러보기를 시청하세요.
복제란 무엇입니까?
Replicate는 개발자가 CLI, API 또는 SDK를 통해 오픈 소스 AI 모델을 배포, 미세 조정 및 액세스할 수 있는 플랫폼입니다. 이 플랫폼을 사용하면 AI 기능을 소프트웨어 애플리케이션에 프로그래밍 방식으로 쉽게 통합할 수 있습니다.
Replicate에서 사용 가능한 모델
- 텍스트: Llama 3와 같은 모델은 입력 프롬프트를 기반으로 일관되고 상황에 맞는 텍스트를 생성할 수 있습니다.
- 이미지: 안정적인 확산과 같은 모델은 텍스트 프롬프트에서 고품질 이미지를 생성할 수 있습니다.
- 음성: 속삭임과 같은 모델은 음성을 텍스트로 변환할 수 있는 반면 xtts-v2와 같은 모델은 자연스러운 음성을 생성할 수 있습니다.
- 비디오: animate-diff와 같은 모델이나 videocrafter와 같은 stable 확산의 변형은 각각 텍스트 및 이미지 프롬프트에서 비디오를 생성 및/또는 편집할 수 있습니다.
Replicate를 함께 사용하면 텍스트, 이미지, 음성, 비디오 등 다양한 형식으로 입력을 받아들이고 출력을 생성할 수 있는 다중 모달 앱을 개발할 수 있습니다.
스트림릿이란 무엇인가요?
Streamlit은 단 몇 줄의 코드만으로 고도의 대화형 앱을 구축할 수 있는 오픈 소스 Python 프레임워크입니다. Streamlit은 LLM, 벡터 데이터베이스 또는 LangChain, LlamaIndex 또는 Weights & Biases와 같은 다양한 AI 프레임워크와 같은 생성 AI의 모든 최신 도구와 통합됩니다. Streamlit의 채팅 요소를 사용하면 AI와 특히 쉽게 상호 작용할 수 있으므로 "데이터와 대화"하는 챗봇을 구축할 수 있습니다.
Replicate와 같은 플랫폼과 결합된 Streamlit을 사용하면 앱 디자인 오버헤드 없이 생성 AI 애플리케이션을 만들 수 있습니다.
? Streamlit이 앞으로의 발전을 위해 어떻게 편향되는지 자세히 알아보려면 이 블로그 게시물을 확인하세요.
Streamlit에 대해 자세히 알아보려면 101 가이드를 확인하세요.
앱 레시피를 사용해 보세요: 복제 + 스트림릿
하지만 내 말을 그대로 받아들이지는 마세요. 앱을 직접 사용해 보거나 동영상 안내를 시청하고 어떻게 생각하는지 확인해 보세요.
이 데모에서는 Replicate를 사용하여 Streamlit 챗봇 앱을 실행해 보겠습니다. 앱은 단일 API를 사용하여 세 가지 다른 LLM에 액세스하고 온도 및 top-p와 같은 매개변수를 조정합니다. 이러한 매개변수는 AI 생성 텍스트의 무작위성과 다양성은 물론 토큰 선택 방법에도 영향을 미칩니다.
? 모델 온도란 무엇인가요? 온도는 모델이 토큰을 선택하는 방식을 제어합니다. 온도가 낮을수록 모델이 더 보수적으로 바뀌고 일반적이고 "안전한" 단어가 선호됩니다. 반대로 온도가 높을수록 가능성이 낮은 토큰을 선택하여 모델이 더 많은 위험을 감수하도록 장려하여 더 창의적인 결과를 얻을 수 있습니다.
? top-p란 무엇인가요? "핵 샘플링"이라고도 알려진 — 무작위성을 조정하는 또 다른 방법입니다. 이는 top-p 값이 증가함에 따라 더 광범위한 토큰 세트를 고려하여 작동합니다. top-p 값이 높을수록 더 다양한 범위의 토큰이 샘플링되어 더 다양한 출력이 생성됩니다.
전제 조건
- 파이썬 버전 >=3.8, !=3.9.7
- 복제 API 키 (무료 평가판 한도를 초과하는 기능에 액세스하려면 결제 방법이 필요합니다.)
? API 키에 대해 자세히 알아보려면 여기 블로그 게시물을 확인하세요.
환경설정
로컬 설정
- 쿡북 저장소 복제: git clone https://github.com/streamlit/cookbook.git
- 쿡북 루트 디렉터리에서 디렉터리를 Replicate recipe(cd recipe/replicate)로 변경합니다.
- Replicate API 키를 .streamlit/secrets_template.toml 파일에 추가하세요
- 파일 이름을 secrets_template.toml에서 secrets.toml로 업데이트합니다: mv .streamlit/secrets_template.toml .streamlit/secrets.toml (Streamlit의 비밀 처리에 대한 자세한 내용은 여기 문서를 참조하세요.)
- 가상 환경 만들기: python -m venv replyvenv
- 가상 환경 활성화: 소스 replyvenv/bin/activate
- 종속성 설치: pip install -r 요구사항.txt
GitHub Codespaces 설정
-
GitHub의 Cookbook 저장소에서 코드 버튼의 Codespaces 옵션을 선택하여 새 코드스페이스를 생성하세요.
코드 공간이 생성되면 Replicate API 키를 recipe/replicate/.streamlit/secrets_template.toml 파일에 추가하세요
secrets_template.toml에서 secrets.toml로 파일 이름 업데이트
(Streamlit의 비밀 처리에 대한 자세한 내용은 여기 문서를 참조하세요.)쿡북 루트 디렉터리에서 디렉터리를 복제 레시피로 변경합니다: cd recipe/replicate
종속성 설치: pip install -r 요구 사항.txt
Replicate를 사용하여 텍스트 생성 모델 실행
- replicate_hello_world.py라는 recipe/replicate 디렉토리에 파일을 생성하십시오.
-
파일에 다음 코드를 추가하세요.
import replicate import toml import os # Read the secrets from the secrets.toml file with open(".streamlit/secrets.toml", "r") as f: secrets = toml.load(f) # Create an environment variable for the Replicate API token os.environ['REPLICATE_API_TOKEN'] = secrets["REPLICATE_API_TOKEN"] # Run a model for event in replicate.stream("meta/meta-llama-3-8b", input={"prompt": "What is Streamlit?"},): print(str(event), end="")
로그인 후 복사 스크립트 실행: python 복제_hello_world.py
모델이 생성한 텍스트가 인쇄된 것을 볼 수 있습니다.
모델 복제와 작동 방식에 대해 자세히 알아보려면 여기에서 해당 설명서를 참조하세요. 기본적으로 Replicate "모델"은 입력을 받아들이고 출력을 반환하는 훈련, 패키지 및 게시된 소프트웨어 프로그램을 의미합니다.
이 특별한 경우 모델은 Meta/meta-llama-3-8b이고 입력은 "prompt": "Streamlit이란 무엇입니까?"입니다. 스크립트를 실행하면 Replicate 엔드포인트가 호출되고 인쇄된 텍스트는 Replicate를 통해 모델에서 반환된 출력입니다.
데모 Replicate Streamlit 챗봇 앱 실행
데모 앱을 실행하려면 Streamlit CLI(streamlit run streamlit_app.py)를 사용하세요.
이 명령을 실행하면 앱이 localhost의 포트에 배포됩니다. 이 위치에 액세스하면 Streamlit 앱이 실행되는 것을 볼 수 있습니다.
이 앱을 사용하면 복제를 통해 다양한 LLM에 메시지를 표시하고 제공한 구성에 따라 생성 텍스트를 생성할 수 있습니다.
여러 LLM 모델을 위한 공통 API
Replicate를 사용하면 하나의 API로 여러 오픈 소스 LLM을 활성화하여 최신 소프트웨어 흐름에 대한 AI 통합을 단순화할 수 있습니다.
이 작업은 다음 코드 블록에서 수행됩니다.
for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
모델, 온도, 상위 구성은 Streamlit의 입력 위젯을 통해 사용자가 제공합니다. Streamlit의 채팅 요소를 사용하면 앱에 챗봇 기능을 쉽게 통합할 수 있습니다. 가장 좋은 점은 이러한 구성 요소를 구현하고 스타일을 지정하기 위해 JavaScript나 CSS를 알 필요가 없다는 것입니다. Streamlit은 모든 것을 즉시 제공합니다.
모범 사례 복제
프롬프트에 가장 적합한 모델을 사용하세요.
Replicate는 공개 모델을 검색할 수 있는 API 엔드포인트를 제공합니다. 해당 웹사이트에서 주요 모델과 사용 사례를 탐색할 수도 있습니다. 이를 통해 특정 요구 사항에 맞는 모델을 쉽게 찾을 수 있습니다.
모델마다 성능 특성이 다릅니다. 정확성과 속도에 대한 요구 사항에 따라 적절한 모델을 사용하세요.
웹후크, 스트리밍, 이미지 URL로 성능 향상
Replicate의 출력 데이터는 한 시간 동안만 사용할 수 있습니다. 웹후크를 사용하여 데이터를 자체 스토리지에 저장하세요. 모델의 비동기 응답을 처리하도록 웹후크를 설정할 수도 있습니다. 이는 확장 가능한 애플리케이션을 구축하는 데 매우 중요합니다.
가능한 경우 스트리밍을 활용하세요. 일부 모델은 스트리밍을 지원하므로 생성되는 동안 부분적인 결과를 얻을 수 있습니다. 이는 실시간 애플리케이션에 이상적입니다.
이미지 URL을 사용하면 Base 64로 인코딩된 업로드된 이미지를 사용할 때보다 성능이 향상됩니다.
Streamlit으로 AI의 잠재력을 활용하세요
Streamlit을 사용하면 몇 달 간의 앱 디자인 작업이 단 몇 줄의 Python으로 간소화됩니다. 최신 AI 발명품을 선보일 수 있는 완벽한 프레임워크입니다.
Streamlit Cookbook에서 다른 AI 레시피를빠르게 시작하고 실행하세요. (포럼에 무엇을 만들고 있는지 알려주는 것도 잊지 마세요!)
행복한 Streamliting을 즐겨보세요! ?
위 내용은 여러 LLM에 액세스하기 위해 하나의 API를 사용하여 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을 입력하십시오 ...

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

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

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

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

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

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

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