ALO-LLM 프레임워크 미사용 한 커스텀 개발
이 문서는 ALO-LLM 프레임워크를 사용하지 않고 로컬 환경에서 서비스 API를 개발하는 방법을 안내합니다.
로컬 환경에서 API 개발하기
ALO-LLM을 사용하지 않는 경우, 특별한 제약사항이 존재하지 않습니다. 다만, 필수로 prerequisite_install.sh 파일에 설치 명령 어를 작성하고 config.yaml 파일에 설명 및 entry_point를 작성해야합니다.
제약사항
- python 3.12.x 버전 사용을 권장합니다.
 - VS Code의 사용을 권장하며, Mobaxterm을 사용하시는 경우, 코드 및 주석에 한글 사용시 에러가 발생할 수 있 습니다.
 - ALO-LLM 기능을 사용하지 않더라도, CLI 명령어를 사용하기 위해서 ALO-LLM을 설치해야합니다.
 
LLM logic 개발자들은 아래와 같은 2단계를 진행하면서 Service API 를 Local 환경에서 개발할 수 있습니다.
1단계 : Custom 개발 Fast API 코드 작성
사용자들이 원하는 목적에 맞게 코드를 개발합니다. ALO-LLM을 사용하지 않는 경우에는 큰 제약은 없으며, 코드 정상동작 확인 후 config.yaml 파일과 prerequisite_install.sh 파일만 설정해주면 됩니다.
2단계 : config.yaml 파일 작성
ALO-LLM을 설치합니다. 설치 후 config.yaml 파일에 AI Logic Deployer 주소 및 설명을 적습니다.
주의사항
- 커스텀 개발 버전으로 개발할 때, End point URL에 AI Pack 이름의 postfix를 추가해야합니다. 이 postfix는 환경변수 AIPACK_NAME 값 혹은 등록할 AI Pack 이름을 활용하여 설정합니다.
 - End point URL에 postfix로 AI Pack 이름이 포함되지 않았을 경우, root_path를 자동으로 인식하지 못해 FastAPI, Streamlit 등이 정상적으로 연결되지 않는 문제가 발생할 수 있습니다.
 - 아래 FastAPI와 Streamlit 개발 예시 참고 부탁드립 니다.
 
1단계: Custom 개발 Fast API 코드 작성
사용자는 특별한 제약 없이, 원하는 목적에 맞는 코드를 작성하시면 됩니다. 다만, 필수로 prerequisite_install.sh를 작성해주셔야 합니다.
코드 예시)
main.py
주의사항
- FastAPI의 root path를 "AIPACK_NAME" 이라는 환경 변수로 선언해주셔야 정상동작 합니다.
 
from fastapi import FastAPI, Response
from fastapi.routing import APIRouter
import os
router = APIRouter()
 
@router.get("/echo_message")  # for base path
def echo_message(path: str = ""):
    try:
        with open("message.txt", "r") as f:
            message = f.read()
        return Response(content=message, media_type="text/plain")
    except Exception as e:
        return Response(content=f"Error reading message: {e}", status_code=500)
 
app = FastAPI(
    root_path="/" + os.getenv("AIPACK_NAME", "")
)
 
app.include_router(router)
message.txt
HELLO
prerequisite_install.sh
주의사항
- prerequisite_install.sh는 작성한 코드에 필요한 라이브러리 설치 명령어를 나열합니다.
 
pip install uvicorn
pip install fastapi
2단계: config.yaml 파일 작성
ALO-LLM 실행을 위한 사용자 작성 파일
ALO-LLM 패키지 설치 후, config.yaml 파일이 작업 경로에 있어야합니다. Service API는 FastAPI 프레임워크를 기반으로 구축됩니다. 각 API의 입력 형식을 규정해야 하며, URI를 명확하게 정의해야 합니 다. ALO-LLM는 이러한 규정을 바탕으로 자동으로 API를 생성합니다.
2-1. ALO-LLM를 pip 명령어로 설치
- pip install 명령어로 설치합니다
pip install mellerikat-alm 
주의사항
- ALO-LLM CLI를 통해 등록 시 현 위치에 존재하는 모든 폴더와 파일을 압축하여 등록합니다.
 
2-2. config.yaml 작성
- 작성하신 logic code를 기반으로 yaml을 작성합니다.
 
주의사항
- description의 Agent명, 개발자, Documents의 내용은 비어있어도 되지만, key는 있어야 합니다.
 - description의 Codes는 필수 작성 내용입니다. (코드 git 주소)
 
name: survey_analysis
version: 1.0.0
entry_point: uvicorn main:app --host 0.0.0.0 --port 80
overview: A framework that easily converts Python code to FastAPI and deploys it to a production environment.
description:
    Agent: ALO-LLM #
    Developer: 성원준 C, 박정준 Y #
    Documents: http://collab.lge.com/main/pages/viewpage.action?pageId=3035388304 #
    Codes: http://mod.lge.com/hub/llmops-aibigdata/llo/llo-dev/-/tree/v1.0.2?ref_type=heads #
    version: v1.2.0
    etc: etc...
setting:
    ai_logic_deployer_url: "https://ald.llm-dev.try-mellerikat.com"
- name: 이 필드는 서비스 API의 이름을 지정합니다. 여기서는 simple chatbot으로 명명되었습니다.
 - version: 서비스 API의 버전을 설정합니다. 현재 버전은 1.0.0입니다
 - entry_point: 사용자가 실행할 명령어입니다. ALO-LLM을 사용하시는 경우는 'alm api'로 그 외 사용자 custom 명령어로 쓰시면됩니다. 여러 명령어 작성 시 
&&로 표시해주시면됩니다. - overview: 전반적인 서비스 API의 설명을 적습니다.
 - description: 등록한 서비스 API의 자세한 설명을 적습니다. key: value 형태로 작성하며, 상위 4개(Agent 명, 개발자, Documents, Codes)는 필수로 그 외는 사용자가 추가/삭제하여 작성할 수 있습니다.
 - setting: 서비스 구성을 위한 설정을 나타냅니다.
 - ai_logic_deployer_uri: 등록 및 배포를 진행할 AI Logic Deployer의 주소를 적습니다.
 
여기까지 작성이 완료되면 다음 페이지로 진행하면 됩니다.