Alli LLM App Market API

이 문서는 Alli LLM App Market의 REST API에 대한 자세한 정보를 제공합니다. 현재 LLM App 조회와 실행 API를 제공하며, API는 향후 추가될 예정입니다.

REST API

LLM API 리스트 조회

LLM App 리스트 조회

GET GET https://backend.alli.ai/webapi/apps

LLM App의 ID 및 정보를 검색합니다.

Path Parameters

Headers

Response Example

{
  "result": [
    {
      "id": "TExNQXBwOjY1NTQxZGJhMWJjYjE2MmIxZjU4MGEyYg==",
      "name": "New Skill",
      "type": "skill",
      "description": null,
      "category": "OTHERS",
      "appFrom": "second_party"
    },
    {
      "id": "TExNQXBwOjY1NWFiOGZkNjlkZDAyNWI3MGUwNGY1ZA==",
      "name": "New Skill (1)",
      "type": "skill",
      "description": null,
      "category": "OTHERS",
      "appFrom": "second_party"
    },
    {
      "id": "TExNQXBwOjY1NDljOTM1MTkyNTExNGQzYTEyMThiOA==",
      "name": "New single action (1)",
      "type": "single_action",
      "description": "afafaf",
      "category": "IT",
      "appFrom": "second_party"
    },
    {
      "id": "TExNQXBwOjY1NTQ2MTNlOWZiZGI4MzA4ODBkYjNmYQ==",
      "name": "llm app v2",
      "type": "skill",
      "description": "dafafaf",
      "category": "GENERAL",
      "appFrom": "second_party"
    }
  ]
}

LLM APP 실행

LLM App 실행

GET https://backend.alli.ai/webapi/apps/:app_id/run

특정 LLM App을 실행합니다.

Path Parameters

Headers

Sinlge Action Input Example(single action : single action 에서 사용한 변수만 사용 가능)

{
  "Short Text" : "subject",
  "Paragraph" : "companyname",
  "Single Choice" : "keyword", 
  "Multiple Choice" : "domain1,domain2", 
  "Document Basic" : "document id", / S25vd2xlZGdlQmFzZTo2NWIzMDUxYTQ4YmE1NDMwNGVjNDBiOWI
  "Document Advanced" : "document id"
}

Input Example

{
  "inputs": {
    "short_text": "short_text",
    "paragraph": "paragraph",
    "single_choice" : "single_chocie_1",
    "multiple_choice" : "multiple_choice_1,multiple_choice_2",
    "document_basic" : "S25vd2xlZGdlQmFzZTo2NWIzMDUxYTQ4YmE1NDMwNGVjNDBiOWI=",
    "document_advanced" : "S25vd2xlZGdlQmFzZTo2NWIzMDUxYTQ4YmE1NDMwNGVjNDBiOWI="
  },
  "mode": "sync"
}

Skill Example (user variable 로 설정한 변수만 사용 가능)

{"input1":["item1","item2"], "input2": 965}

Response

Response

GET

Path Parameters

Headers

Response Example

{
  "result": {
    "id": "TExNQXBwOjY1NTQ2MTNlOWZiZGI4MzA4ODBkYjNmYQ==",
    "name": "llm app v2",
    "type": "skill",
    "category": "GENERAL",
    "choices": [
      {
        "id": "Q2hhdDo2NTVlZTFkMjcyOGI3NDlmMjZkZGQ5ZjI=",
        "type": "llm",
        "message": "{\"blocks\": [{\"key\": \"txg1\", \"type\": \"unstyled\", \"text\": \"Allganize는 AI 솔루션을 제공하고 있으며, 기업의 업무 효율화와 혁신을 실현하고 있습니다.알리 LLM 앱 마켓에서는 100개 이상의 업무 앱이 제공되고 있으며, LLM 앱 빌더 및 LLM 모델 등 LLM과 관련된 기능을 올인원으로 제공하고 있습니다.또한 Alli 챗봇과 Alli Capture를 활용하여 비즈니스 자동화 및 데이터 추출을 수행할 수 있습니다.Allganize는 보험업, 채용, 이커머스, 고객지원 등 다양한 업계에서의 활용 사례가 있습니다.\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}], \"entityMap\": {}}"
      }
    ]
  }
}

실제 사용 예시(공통)

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -vv -X GET \
  'https://backend.alli.ai/webapi/apps' \
  --header 'API-KEY: REST_API_KEY'

Response Example (id는 run api 호출 시 사용)

{
  "result": [
    {
      "id": "TExNQXBwOjY1NWVlYTU1OTZlOWM1MjI4MDY2YjlhOQ==",
      "name": "LLM App용 Skill",
      "type": "skill",
      "description": "LLM App 용 Skill입니다.",
      "category": "General",
      "appFrom": "second_party"
    },
    {
      "id": "TExNQXBwOjY1NWVlOTI3NzcyOGQxZTE1ZmI0OGRjNQ==",
      "name": "Sample Skill",
      "type": "skill",
      "description": "desc",
      "category": "OTHERS",
      "appFrom": "second_party"
    },
    {
      "id": "TExNQXBwOjY1NWVlYTMzY2IzMzQ1OTVkZjQwNzdhZg==",
      "name": "요약 싱글 액션 앱",
      "type": "single_action",
      "description": "요약을 위한 싱글 액션입니다.",
      "category": "General",
      "appFrom": "second_party"
    }
  ]
}

Single Action

Single Action 작성 후 LLM APP 에 등록 (앱 마켓에서 관리 페이지에 추가한 Single Action App도 사용가능)

Run LLM App API 실행

상기에서 발급받은 REST API Key를 이용

curl -vv -X POST \
  'https://backend.alli.ai/webapi/apps/TExNQXBwOjY1NWVlYTMzY2IzMzQ1OTVkZjQwNzdhZg==/run' \
  --header 'Accept: */*' \
  --header 'API-KEY: REST_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{"inputs":{"input": "어린 왕자는 전 세계적으로 약 1억 4천만 부가 팔렸으며, 이는 출판된 책들 중 가장 많이 팔리고 번역된 책들 중 하나이다. 현재까지 301개의 언어와 방언으로 번역되었다. 미국에서 처음 발간된 소설이다. 이 소설의 유래가 참 재밌는데, 생텍쥐페리가 뉴욕에 체류 중이었을 당시, 미국의 담당 출판업자인 유진 레이널(Eugene Reynal)과 저녁 식사를 하던 도중에 냅킨에 낙서로 아이 한 명을 그렸다. 유진 레이널이 그 그림을 보고 생택쥐페리에게 크리스마스 전까지 그 아이를 소재로 동화를 쓰면 참 좋을 텐데요.라고 제안한 것이 이 소설을 탄생시킨 결정적인 계기가 되었다. (유진 레이널이 그의 스트레스 해소를 위해 제안했다는 이야기도 있다.) 어린 왕자의 기본 스케치의 모티브는 체코 프라하의 아기 예수상이라고 한다. 또한 작중 화자인 조종사는 생택쥐페리 본인이 1935년 사하라 사막에 부조종사와 함께 불시착해 5일 동안 먹을 물 한 방울 없이 고립되어 있을 때 경험한 환상들에서 모티브를 얻었다."}, "mode":"sync"}'

Response Example

{
  "result": {
    "id": "TExNQXBwOjY1NWVlYTMzY2IzMzQ1OTVkZjQwNzdhZg==",
    "name": "요약 싱글 액션 앱",
    "type": "single_action",
    "category": "General",
    "choices": [
      {
        "id": "U2luZ2xlQWN0aW9uOjY1NWVlZjQ4M2JhMTIzYzA3YWZmNWUzOQ==",
        "type": "llm",
        "message": "어린 왕자는 1억 4천만 부 이상 팔려 세계에서 가장 많이 팔린 책 중 하나이며, 301개 언어로 번역되었다. 이 소설은 미국에서 처음 출판되었으며, 유진 레이널 출판업자의 제안으로 탄생했다. 어린 왕자의 기본 스케치는 체코 프라하의 아기 예수상에서 영감을 받았으며, 조종사는 생텍쥐페리 본인의 사하라 사막에서의 경험에서 영감을 얻었다."
      }
    ]
  }
}

Skill

현재 사용자의 인터랙션이 중간에 요구되는 Skill(예: 앱 실행 중간에 사용자에게 선택, 메시지 입력 요청)은 LLM App API로 지원되지 않습니다. (단, 문서 업로드 후 LLM 노드 실행은 예외적으로 아래 예시와 같이 지원합니다.)

Skill에서 사용할 Variable 생성 (Conversation variables이 아닌 User Variables로 생성해야 합니다)

Skill 에서 사용할 Prompt 생성 (Dynamic input 추가 필요): 프롬프트 관리에 관한 자세한 내용은 이 페이지를 참고하세요.

Prompt 를 사용하여 Skill 생성 및 등록

Skill 에서 사용할 문서 등록 (Answer Bot API 참조) 상기에서 발급받은 REST API Key를 이용

curl -vv -F 'file=@"/Users/jay/Downloads/test.txt"' \
-F 'footerUrl="www.allganize.ai"' \
-F 'footerTitle="Allganize website"' \
-F 'followFolderPermission=false' \
-F 'agentViewer="[\"jyp_test@allganize.ai\"]"' \
-H 'API-KEY: REST_API_KEY' https://backend.alli.ai/webapi/upload_file

Response Example(아래 결과의 id를 input으로 사용)

{
  "result": {
    "id": "S25vd2xlZGdlQmFzZTo2NTVlZjAzNmMxYzFmMDFiYmNmYjYxMWM=",
    "fileName": "test.txt",
    "hashtags": [],
    "footer": "{\"blocks\": [{\"key\": \"xx9l\", \"text\": \"— From Allganize website\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [{\"offset\": 7, \"length\": 17, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"www.allganize.ai\"}}}}",
    "folder": null,
    "agentEditor": [],
    "agentViewer": [
      "jyp_test@allganize.ai"
    ],
    "userViewer": {
      "variables": {}
    },
    "allowOtherAgentsView": true,
    "allowOtherUsersView": true,
    "properties": {}
  }
}

Run LLM APP Api 실행 상기에서 발급받은 REST API Key를 이용

curl -vv -X POST \
'https://backend.alli.ai/webapi/apps/TExNQXBwOjY1NWVlYTU1OTZlOWM1MjI4MDY2YjlhOQ==/run' \
--header 'Accept: */*' \
--header 'API-KEY: REST_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{"inputs":{"usertest": ["S25vd2xlZGdlQmFzZTo2NTVlZjAzNmMxYzFmMDFiYmNmYjYxMWM="]}, "mode":"sync"}'

Response Example

{
  "result": {
    "id": "TExNQXBwOjY1NWVlYTU1OTZlOWM1MjI4MDY2YjlhOQ==",
    "name": "LLM App용 Skill",
    "type": "skill",
    "category": "General",
    "responses": [
      {
        "id": "Q2hhdDo2NTVlZjFhMGJiOWRkZjBhMWVkMzViNTE=",
        "type": "llm",
        "message": "{\"blocks\": [{\"key\": \"jeno\", \"type\": \"unstyled\", \"text\": \"어머니를 잃은 소녀가 재투성이라 불리며 가족에게 학대를 받지만, 어머니의 무덤에 심은 나무를 통해 위로를 받는 이야기.\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}], \"entityMap\": {}}"
      }
    ]
  }
}

Error Message

예상했던 response 를 받지 못한 경우 에러 메시지를 확인해 주세요. .

Error Response example

{
    "type": "APIError",
    "code": 7000,
    "message": "Something went wrong."
}

Last updated