본문 바로가기
프로그래밍/Web

Laravel Prism 사용하기(번역) - 5 -

by 사악신 2024. 10. 15.

Prism 서버

Prism 서버는 Prism으로 구동되는 AI 모델을 표준화된 API를 통해 노출할 수 있게 해주는 강력한 기능입니다. 이를 통해 채팅 인터페이스나 OpenAI 호환 API를 지원하는 다른 도구들을 포함한 다양한 애플리케이션에 커스텀 AI 솔루션을 쉽게 통합할 수 있습니다.

작동 원리

Prism 서버는 미들웨어 역할을 하며, OpenAI 호환 클라이언트의 요청을 Prism 특정 작업으로 변환합니다. 이는 ChatGPT 웹 UI나 OpenAI SDK를 사용하여 커스텀 Prism 모델과 상호작용할 수 있음을 의미합니다.

Prism 서버 설정하기

1. Prism 서버 활성화

먼저 config/prism.php 파일에서 Prism 서버가 활성화되어 있는지 확인하세요:

'prism_server' => [
    'enabled' => env('PRISM_SERVER_ENABLED', true),
],

2. Prism 등록하기

서버를 통해 Prism 모델을 사용할 수 있게 하려면 등록해야 합니다. 이는 일반적으로 AppServiceProvider와 같은 서비스 프로바이더에서 수행됩니다:

use EchoLabs\Prism\Facades\Prism;
use EchoLabs\Prism\Facades\PrismServer;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        PrismServer::register(
            'my-custom-model',
            fn () => Prism::text()
                ->using('anthropic', 'claude-3-sonnet-20240229')
                ->withSystemPrompt('당신은 도움이 되는 어시스턴트입니다.')
        );
    }
}

이 예시에서는 Anthropic Claude 3 Sonnet 모델을 사용하고 커스텀 시스템 메시지를 가진 my-custom-model이라는 모델을 등록하고 있습니다.

Prism 서버 사용하기

설정이 완료되면 Prism 서버는 두 개의 주요 엔드포인트를 노출합니다:

채팅 완성

등록된 Prism 모델을 사용하여 텍스트를 생성하려면:

curl -X POST "http://your-app.com/prism/openai/v1/chat/completions" \
     -H "Content-Type: application/json" \
     -d '{
  "model": "my-custom-model",
  "messages": [
    {"role": "user", "content": "안녕하세요, 당신은 누구인가요?"}
  ]
}'

사용 가능한 모델 목록

등록된 모든 Prism 모델의 목록을 얻으려면:

curl "http://your-app.com/prism/openai/v1/models"

Open WebUI와의 통합

Prism 서버는 Open WebUI와 같은 OpenAI 호환 채팅 인터페이스와 원활하게 작동합니다. 다음은 Docker Compose 구성 예시입니다:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      OPENAI_API_BASE_URLS: "http://laravel:8080/prism/openai/v1"
      WEBUI_SECRET_KEY: "your-secret-key"

  laravel:
    image: serversideup/php:8.3-fpm-nginx
    volumes:
      - ".:/var/www/html"
    environment:
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
    depends_on:
      - open-webui

이 설정을 통해 http://localhost:3000에서 사용자 친화적인 채팅 인터페이스를 통해 Prism 모델에 액세스할 수 있습니다.

Prism 서버를 활용함으로써, 광범위한 도구와 라이브러리 생태계와의 호환성을 유지하면서 강력한 커스텀 AI 경험을 만들 수 있습니다. 챗봇을 구축하든, 콘텐츠 생성 도구를 만들든, 아니면 완전히 새로운 것을 만들든, Prism 서버는 성공에 필요한 유연성과 표준화를 제공합니다.

반응형

댓글