# Apps

App related APIs

## Get List Apps

> Get a list of apps. The apps are sorted by weight in descending order by default.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}},"schemas":{"AppsResponse":{"description":"Response for listing apps.","properties":{"apps":{"description":"List of apps","items":{"$ref":"#/components/schemas/App"},"title":"Apps","type":"array"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"}},"required":["apps"],"title":"AppsResponse","type":"object"},"App":{"description":"App information.","properties":{"id":{"description":"Unique ID of the app","title":"Id","type":"string"},"name":{"description":"Name of the app","title":"Name","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the app","title":"Description"},"type":{"description":"Type of the app","title":"Type","type":"string"},"category":{"description":"Category of the app","title":"Category","type":"string"},"published":{"description":"Whether the app is published","title":"Published","type":"boolean"},"agentPermission":{"$ref":"#/components/schemas/AgentPermissionResponse","description":"Agent permission"},"userPermission":{"$ref":"#/components/schemas/UserPermissionResponse","description":"User permission"}},"required":["id","name","type","category","published","agentPermission","userPermission"],"title":"App","type":"object"},"AgentPermissionResponse":{"description":"Response model for agent permission.","properties":{"accessAgents":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessAgent"},"type":"array"},{"type":"null"}],"title":"Accessagents"},"accessPermissionGroups":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessPermissionGroupResponse"},"type":"array"},{"type":"null"}],"title":"Accesspermissiongroups"},"viewAccessToAgent":{"title":"Viewaccesstoagent","type":"boolean"}},"required":["viewAccessToAgent"],"title":"AgentPermissionResponse","type":"object"},"AccessAgent":{"properties":{"agentId":{"description":"액세스 에이전트의 에이전트 ID","title":"Agentid","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"액세스 에이전트의 액세스 유형"}},"required":["agentId","accessType"],"title":"AccessAgent","type":"object"},"ObjectAccessType":{"enum":["order_1_editor","order_2_reader"],"title":"ObjectAccessType","type":"string"},"AccessPermissionGroupResponse":{"description":"Response model for access permission group with name included.","properties":{"permissionGroupId":{"description":"The permission group ID","title":"Permissiongroupid","type":"string"},"permissionGroupName":{"description":"The permission group name","title":"Permissiongroupname","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"The access type"}},"required":["permissionGroupId","permissionGroupName","accessType"],"title":"AccessPermissionGroupResponse","type":"object"},"UserPermissionResponse":{"properties":{"ownUserIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ownuserids"},"customerGroups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Customergroups"},"viewAccessToUser":{"title":"Viewaccesstouser","type":"boolean"}},"required":["viewAccessToUser"],"title":"UserPermissionResponse","type":"object"}}},"paths":{"/webapi/v2/apps":{"get":{"operationId":"django_server_llm_app_views_rest_apps_api_get_list_apps","summary":"Get List Apps","parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"},{"in":"query","name":"searchTerm","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term for app name or description","title":"Searchterm"},"required":false,"description":"Search term for app name or description"},{"in":"query","name":"categories","schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"description":"Filter by app categories","title":"Categories"},"required":false,"description":"Filter by app categories"},{"in":"query","name":"type","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by app type","title":"Type"},"required":false,"description":"Filter by app type"},{"in":"query","name":"published","schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by published status","title":"Published"},"required":false,"description":"Filter by published status"},{"in":"query","name":"pageSize","schema":{"default":50,"description":"Number of apps per page","maximum":100,"minimum":1,"title":"Pagesize","type":"integer"},"required":false,"description":"Number of apps per page"},{"in":"query","name":"cursor","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"},"required":false,"description":"Cursor for pagination"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppsResponse"}}}}},"description":"Get a list of apps. The apps are sorted by weight in descending order by default.","tags":["apps"]}}}}
```

## Get App By Id

> Get a specific app by ID.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}},"schemas":{"App":{"description":"App information.","properties":{"id":{"description":"Unique ID of the app","title":"Id","type":"string"},"name":{"description":"Name of the app","title":"Name","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the app","title":"Description"},"type":{"description":"Type of the app","title":"Type","type":"string"},"category":{"description":"Category of the app","title":"Category","type":"string"},"published":{"description":"Whether the app is published","title":"Published","type":"boolean"},"agentPermission":{"$ref":"#/components/schemas/AgentPermissionResponse","description":"Agent permission"},"userPermission":{"$ref":"#/components/schemas/UserPermissionResponse","description":"User permission"}},"required":["id","name","type","category","published","agentPermission","userPermission"],"title":"App","type":"object"},"AgentPermissionResponse":{"description":"Response model for agent permission.","properties":{"accessAgents":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessAgent"},"type":"array"},{"type":"null"}],"title":"Accessagents"},"accessPermissionGroups":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessPermissionGroupResponse"},"type":"array"},{"type":"null"}],"title":"Accesspermissiongroups"},"viewAccessToAgent":{"title":"Viewaccesstoagent","type":"boolean"}},"required":["viewAccessToAgent"],"title":"AgentPermissionResponse","type":"object"},"AccessAgent":{"properties":{"agentId":{"description":"액세스 에이전트의 에이전트 ID","title":"Agentid","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"액세스 에이전트의 액세스 유형"}},"required":["agentId","accessType"],"title":"AccessAgent","type":"object"},"ObjectAccessType":{"enum":["order_1_editor","order_2_reader"],"title":"ObjectAccessType","type":"string"},"AccessPermissionGroupResponse":{"description":"Response model for access permission group with name included.","properties":{"permissionGroupId":{"description":"The permission group ID","title":"Permissiongroupid","type":"string"},"permissionGroupName":{"description":"The permission group name","title":"Permissiongroupname","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"The access type"}},"required":["permissionGroupId","permissionGroupName","accessType"],"title":"AccessPermissionGroupResponse","type":"object"},"UserPermissionResponse":{"properties":{"ownUserIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ownuserids"},"customerGroups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Customergroups"},"viewAccessToUser":{"title":"Viewaccesstouser","type":"boolean"}},"required":["viewAccessToUser"],"title":"UserPermissionResponse","type":"object"}}},"paths":{"/webapi/v2/apps/{app_id}":{"get":{"operationId":"django_server_llm_app_views_rest_apps_api_get_app_by_id","summary":"Get App By Id","parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"},{"in":"path","name":"app_id","schema":{"title":"App Id","type":"string"},"required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/App"}}}}},"description":"Get a specific app by ID.","tags":["apps"]}}}}
```

## Update App

> Update an app.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}},"schemas":{"App":{"description":"App information.","properties":{"id":{"description":"Unique ID of the app","title":"Id","type":"string"},"name":{"description":"Name of the app","title":"Name","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the app","title":"Description"},"type":{"description":"Type of the app","title":"Type","type":"string"},"category":{"description":"Category of the app","title":"Category","type":"string"},"published":{"description":"Whether the app is published","title":"Published","type":"boolean"},"agentPermission":{"$ref":"#/components/schemas/AgentPermissionResponse","description":"Agent permission"},"userPermission":{"$ref":"#/components/schemas/UserPermissionResponse","description":"User permission"}},"required":["id","name","type","category","published","agentPermission","userPermission"],"title":"App","type":"object"},"AgentPermissionResponse":{"description":"Response model for agent permission.","properties":{"accessAgents":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessAgent"},"type":"array"},{"type":"null"}],"title":"Accessagents"},"accessPermissionGroups":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessPermissionGroupResponse"},"type":"array"},{"type":"null"}],"title":"Accesspermissiongroups"},"viewAccessToAgent":{"title":"Viewaccesstoagent","type":"boolean"}},"required":["viewAccessToAgent"],"title":"AgentPermissionResponse","type":"object"},"AccessAgent":{"properties":{"agentId":{"description":"액세스 에이전트의 에이전트 ID","title":"Agentid","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"액세스 에이전트의 액세스 유형"}},"required":["agentId","accessType"],"title":"AccessAgent","type":"object"},"ObjectAccessType":{"enum":["order_1_editor","order_2_reader"],"title":"ObjectAccessType","type":"string"},"AccessPermissionGroupResponse":{"description":"Response model for access permission group with name included.","properties":{"permissionGroupId":{"description":"The permission group ID","title":"Permissiongroupid","type":"string"},"permissionGroupName":{"description":"The permission group name","title":"Permissiongroupname","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"The access type"}},"required":["permissionGroupId","permissionGroupName","accessType"],"title":"AccessPermissionGroupResponse","type":"object"},"UserPermissionResponse":{"properties":{"ownUserIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ownuserids"},"customerGroups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Customergroups"},"viewAccessToUser":{"title":"Viewaccesstouser","type":"boolean"}},"required":["viewAccessToUser"],"title":"UserPermissionResponse","type":"object"},"UpdateAppRequest":{"description":"Request schema for updating an app.","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the app","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the app","title":"Description"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category of the app","title":"Category"},"published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the app is published","title":"Published"},"agentPermission":{"anyOf":[{"$ref":"#/components/schemas/AgentPermission"},{"type":"null"}],"description":"Agent permission"},"userPermission":{"anyOf":[{"$ref":"#/components/schemas/UserPermission"},{"type":"null"}],"description":"User permission"}},"title":"UpdateAppRequest","type":"object"},"AgentPermission":{"properties":{"accessAgents":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessAgent"},"type":"array"},{"type":"null"}],"title":"Accessagents"},"accessPermissionGroups":{"anyOf":[{"items":{"$ref":"#/components/schemas/AccessPermissionGroup"},"type":"array"},{"type":"null"}],"title":"Accesspermissiongroups"},"viewAccessToAgent":{"title":"Viewaccesstoagent","type":"boolean"}},"required":["viewAccessToAgent"],"title":"AgentPermission","type":"object"},"AccessPermissionGroup":{"properties":{"permissionGroupId":{"description":"액세스 권한 그룹의 권한 그룹 ID","title":"Permissiongroupid","type":"string"},"accessType":{"$ref":"#/components/schemas/ObjectAccessType","description":"접근 권한 그룹의 접근 유형"}},"required":["permissionGroupId","accessType"],"title":"AccessPermissionGroup","type":"object"},"UserPermission":{"properties":{"ownUserIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ownuserids"},"customerGroups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Customergroups"},"viewAccessToUser":{"title":"Viewaccesstouser","type":"boolean"}},"required":["viewAccessToUser"],"title":"UserPermission","type":"object"}}},"paths":{"/webapi/v2/apps/{app_id}":{"patch":{"operationId":"django_server_llm_app_views_rest_apps_api_update_app","summary":"Update App","parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"},{"in":"path","name":"app_id","schema":{"title":"App Id","type":"string"},"required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/App"}}}}},"description":"Update an app.","tags":["apps"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAppRequest"}}},"required":true}}}}}
```

## GET /webapi/apps

>

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/apps":{"get":{"tags":["apps"],"operationId":"getApps","parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"},{"name":"published","in":"query","required":false,"schema":{"type":"string"}},{"name":"id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"앱 API 성공 답변 받기","content":{"application/json":{"schema":{"type":"object","required":["result"],"properties":{"result":{"type":"array","items":{"type":"object","required":["id","name","type","description","category","app_from","app_url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["single_action","skill"]},"description":{"type":"string"},"category":{"type":"string"},"app_from":{"type":"string"},"app_url":{"type":"string"}}}}}}}}}}}}}}
```

## POST /webapi/apps

>

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/apps":{"post":{"tags":["apps"],"operationId":"createApp","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type","name","description","category","published","enabled","single_action_app_input"],"properties":{"user_id":{"type":"string"},"type":{"type":"string","enum":["single_action"]},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"published":{"type":"boolean"},"enabled":{"type":"boolean"},"single_action_app_input":{"type":"object","nullable":true,"required":["name","description","inputs","llm_model","messages"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"llm_model":{"type":"string"},"selected_llm_processing_method":{"type":"string","nullable":true,"enum":["stuff","map","map_reduce","chunk_map","chunk_map_reduce"]},"selected_map_reduce_input_variable_name":{"type":"string","nullable":true},"inputs":{"type":"array","items":{"type":"object","required":["name","value","input_type"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"placeholder":{"type":"string","nullable":true},"input_type":{"type":"string","enum":["text","paragraph","single","multi","document_basic","document_advanced","image_basic","image_advanced"]},"options":{"type":"array","items":{"type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"}}}}}}},"messages":{"type":"array","items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["system","user"]},"content":{"type":"string"}}}}}}}}}}},"responses":{"200":{"description":"앱 API 성공 답변 생성","content":{"application/json":{"schema":{"type":"object","required":["result"],"properties":{"result":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```

## Run LLM App

> Execute an LLM App via REST API. Supports JSON requests.<br>

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/apps/{app_id}/run":{"post":{"tags":["apps"],"operationId":"runApp","summary":"Run LLM App","description":"Execute an LLM App via REST API. Supports JSON requests.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chat":{"type":"object","description":"Chat message input for conversational apps","properties":{"message":{"type":"string","description":"The user's message/question"},"source":{"type":"object","description":"Source documents and knowledge bases for the chat","properties":{"knowledgeBaseIds":{"type":"array","items":{"type":"string"},"description":"List of knowledge base IDs to attach (for conversation history)"},"folderIds":{"type":"array","items":{"type":"string"},"description":"List of folder IDs to search"},"webSites":{"type":"array","items":{"type":"string"},"description":"List of web sites to search"}}}}},"inputs":{"type":"object","description":"Input variables for the LLM App. The structure depends on the app type. For single_action apps, this contains the app-specific input fields. For campaign apps, this can include prompt overrides and other configuration.\n","additionalProperties":true},"mode":{"type":"string","enum":["sync","stream","background"],"default":"sync","description":"Execution mode. Use \"sync\" for synchronous responses or \"stream\" for streaming responses. Default is \"sync\".\n"},"isStateful":{"type":"boolean","default":false,"description":"Whether to maintain conversation state. Set to true to enable conversation history. When true, conversationId must be provided for follow-up messages.\n"},"conversationId":{"type":"string","description":"Conversation ID for continuing a previous conversation. Required when isStateful is true for follow-up messages. Use the conversation.id from the previous response.\n"},"llmModel":{"type":"string","description":"Name of the LLM model to use. Must be a registered model name (lowercase). See model registration documentation for available models.\n"},"llmPromptId":{"type":"string","description":"ID of the LLM prompt to use"},"gaPromptGroupId":{"type":"string","description":"ID of the Generative Answer prompt group to use"},"temperature":{"type":"number","default":0,"description":"Controls the randomness of the output. Higher values make the output more random. Range is typically 0 to 2.\n"},"requiredVariables":{"type":"array","items":{"type":"string"},"description":"List of required variable names to include in the response"}}}}}},"responses":{"200":{"description":"Successfully executed the LLM App","content":{"application/json":{"schema":{"type":"object","required":["result"],"properties":{"result":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the LLM App that was executed"},"name":{"type":"string","description":"The name of the LLM App"},"type":{"type":"string","enum":["campaign","single_action","agent"],"description":"The type of LLM App"},"category":{"type":"string","description":"The category of the LLM App"},"responses":{"type":"array","description":"List of responses from the LLM App execution","items":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the response (Chat or SingleActionAppResult)"},"type":{"type":"string","description":"Node type (e.g., \"tn\", \"llm\")"},"message":{"type":"string","description":"The response message content"},"source":{"type":"object","description":"Source information for the message"},"sender":{"type":"string","description":"The sender of the message"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the response was created"},"completed":{"type":"boolean","description":"Whether the generation process has been completed"},"citations":{"type":"array","description":"Citation references used in the response","items":{"type":"object","properties":{"clueId":{"type":"string","description":"Unique ID of the clue"},"source":{"type":"string","description":"Source type (DOCUMENT, FAQ, WEB)"},"title":{"type":"string","description":"Title of the source document"},"knowledgeBaseId":{"type":"string","description":"Document ID of the clue"},"pageNo":{"type":"integer","description":"Page number of the clue"},"url":{"type":"string","description":"URL of the citation"},"text":{"type":"string","description":"Text excerpt of the citation"}}}},"error":{"type":"object","description":"Error information if an error occurred","properties":{"timestamp":{"type":"integer","description":"Timestamp of the error"},"nodeId":{"type":"string","description":"ID of the node where the error occurred"},"nodeType":{"type":"string","description":"Type of the node where the error occurred"},"errorType":{"type":"string","description":"Type of the error"},"errorObject":{"type":"object","description":"Additional error details"}}},"intermediateStep":{"type":"object","description":"Intermediate step information showing progress during generation. Used for displaying status messages during processing.\n","properties":{"completed":{"type":"boolean","description":"Whether the step is completed"},"key":{"type":"string","description":"Unique key for the step"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the step was created"},"statusMessage":{"type":"string","description":"Status message (e.g., \"Reasoning\")"},"markdownMessage":{"type":"string","description":"Markdown formatted message for the step"}}}}}},"variables":{"type":"object","description":"Variable values if requiredVariables was specified in the request. Contains the current values of project variables.\n","additionalProperties":true},"conversation":{"type":"object","description":"Conversation information when isStateful is true. Use the conversation.id for subsequent requests to continue the conversation.\n","properties":{"id":{"type":"string","description":"Conversation ID for continuing the conversation"},"state":{"type":"string","description":"Current state of the conversation"}}}}},"error":{"type":"string","description":"Error message if an error occurred"}}}}}},"400":{"description":"Bad request"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal server error"}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"},{"name":"app_id","in":"path","required":true,"schema":{"type":"string"}}]}}}}
```

## 기술 실행

> 이 API는 스킬을 실행하고 최종 텍스트 답변을 JSON 포맷으로 반환합니다. 이 API는 스킬이 그 목적을 위해 설계된 경우 엔티티 추출에 사용할 수 있습니다.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/skill":{"post":{"tags":["apps"],"operationId":"runSkill","summary":"기술 실행","description":"이 API는 스킬을 실행하고 최종 텍스트 답변을 JSON 포맷으로 반환합니다. 이 API는 스킬이 그 목적을 위해 설계된 경우 엔티티 추출에 사용할 수 있습니다.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","text"],"properties":{"id":{"type":"string","description":"스킬 ID입니다. Alli 대시보드에서 스킬을 클릭하면 URL이 https://app.alli.ai/projects/PROJECT_ID/campaigns/SKILL_ID와 같이 표시됩니다. 여기에 SKILL_ID를 입력해 주세요."},"text":{"type":"string","description":"기술 실행을 위한 입력 텍스트입니다."},"variables":{"type":"object","description":"변수는 스킬의 변수를 설정하기 위한 JSON 객체입니다. Alli에서 변수에 대해 더 알아보려면 유저 가이드를 True조해 주세요."}}}}}},"responses":{"200":{"description":"성공적으로 실행되었습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"string","description":"스킬 실행의 최종 텍스트 출력."},"errors":{"type":"array","items":{"type":"string"},"description":"오류가 발생하면, 오류 메시지가 여기에 포함됩니다."}}}}}},"400":{"description":"잘못된 요청","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"허가되지 않음","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string"}}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```

## 생성 답변 API

> 생성적 답변 API는 비정형 텍스트 문서, Q\&A, 심지어 복잡한 표에서도 답을 찾습니다. 여러 출처에서 정보를 종합하여 유저 쿼리에 대한 포괄적인 답변을 제공합니다.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/generative_answer":{"post":{"tags":["apps"],"operationId":"getGenerativeAnswer","summary":"생성 답변 API","description":"생성적 답변 API는 비정형 텍스트 문서, Q&A, 심지어 복잡한 표에서도 답을 찾습니다. 여러 출처에서 정보를 종합하여 유저 쿼리에 대한 포괄적인 답변을 제공합니다.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","required":true,"description":"쿼리 문자열입니다."},"model":{"type":"string","description":"답변을 생성할 때 선택한 LLM을 활용하십시오. 기본 모델은 GPT4o입니다. 사용 가능한 옵션은 문서를 True로 변경하십시오."},"answerFormat":{"type":"string","description":"답변의 형식을 결정하여 통합을 용이하게 만듭니다. 허용 가능한 값은 DRAFTJS 및 MARKDOWN입니다. 기본 형식은 DRAFTJS입니다."},"isStateful":{"type":"boolean","description":"후속 질문을 사용하기 위해서는 이전 대화 역사가 필요합니다. 대화 역사는 threadId로 관리됩니다. isStateful 옵션을 True로 설정하고 threadId를 입력하면 이전 대화 역사를 True고하여 쿼리가 다시 작성됩니다. 기본값 = False."},"threadId":{"type":"string","format":"uuid","description":"threadId는 isStateful = True일 때 사용됩니다. 처음 대화를 시작할 때는 비워서 보내고, 그 다음 질의부터는 출력에서 threadId를 사용하여 보냅니다. 그러나 처음부터 threadId를 설정하려면 UUID로 작성하여 보내십시오. 예시 UUID - 36e7bb2b-1063-47ec-. 기본값 = None."},"promptGroupId":{"type":"string","description":"프로젝트에서 답변 생성에 사용할 그룹 프롬프트를 선택해 주세요. ID는 설정 페이지 내에서 그룹 프롬프트를 볼 때 URL에 위치해 있습니다. 이는 특정 작업을 위해 수정된 여러 다른 그룹 프롬프트가 있는 프로젝트에 매우 유용한 옵션입니다."},"mode":{"type":"string","description":"데이터를 스트림 또는 동기식으로 출력할지 여부. 현재 사용 가능한 값: sync 또는 stream (기본값=sync). 스트림 모드에서는 .json 문자열이 동기식과 동일한 출력 형식으로 스트리밍으로 출력됩니다."},"clueText":{"type":"boolean","description":"단서를 사용하여 단서로 사용된 문서의 텍스트를 포함할지 여부. 기본값 = False. 단서가 활성화된 경우에만 작동합니다."},"clues":{"type":"boolean","description":"출력에 생성 답변을 만드는 데 사용될 단서를 포함할지 여부. 기본값 = False."},"includeCitations":{"type":"boolean","description":"Whether to include detailed citation information in the response. Citations provide structured references to source documents used in generating the answer. Default = False.\n"},"hashtags":{"type":"object","description":"이 기능을 활용하여 문서나 Q&A에서 해시태그를 통해 검색 범위를 지정하십시오. 특정 해시태그를 포함하거나 제외할 수 있으며, 선택한 해시태그에 대해 '그리고' 또는 '또는' 옵션을 제공할 수 있습니다.","properties":{"qnaInclude":{"type":"array","items":{"type":"string"},"description":"FAQ hashtags to include in the search"},"qnaIncludeOption":{"type":"string","enum":["and","or"],"default":"or","description":"Operator for FAQ include hashtags (and/or)"},"qnaExclude":{"type":"array","items":{"type":"string"},"description":"FAQ hashtags to exclude from the search"},"qnaExcludeOption":{"type":"string","enum":["and","or"],"default":"or","description":"Operator for FAQ exclude hashtags (and/or)"},"docsInclude":{"type":"array","items":{"type":"string"},"description":"Document hashtags to include in the search"},"docsIncludeOption":{"type":"string","enum":["and","or"],"default":"or","description":"Operator for document include hashtags (and/or)"},"docsExclude":{"type":"array","items":{"type":"string"},"description":"Document hashtags to exclude from the search"},"docsExcludeOption":{"type":"string","enum":["and","or"],"default":"or","description":"Operator for document exclude hashtags (and/or)"}}},"search_from":{"type":"array","items":{"type":"string"},"description":"생성적 답변이 데이터를 찾기 위한 원본 데이터의 범위를 지정합니다. 현재 사용 가능한 값은 다음과 같습니다: 웹, 질의답변, 문서이며, 목록 형식으로 데이터를 입력합니다. 예를 들어 -> [\"웹\", \"질의답변\"]"},"temperature":{"type":"number","description":"출력의 무작위성을 제어합니다. 값이 클수록 출력이 더 무작위가 됩니다. 기본값 = 0."},"source":{"type":"object","description":"Source configuration for knowledge bases and folders. This is the preferred way to specify search scope. Use this instead of the legacy knowledgeBaseIds/folderIds parameters.\n","properties":{"sharedKnowledgeBaseNodeIds":{"type":"array","items":{"type":"string"},"description":"List of shared knowledge base or folder node IDs (global IDs) to search. Use empty array [] to search all shared documents. Use null to exclude shared documents from search.\n"},"personalKnowledgeBaseNodeIds":{"type":"array","items":{"type":"string"},"description":"List of personal knowledge base or folder node IDs (global IDs) to search. Use empty array [] to search all personal documents. Use null to exclude personal documents from search.\n"},"webSites":{"type":"array","items":{"type":"string"},"description":"List of web sites to search."}}},"knowledgeBaseIds":{"type":"array","items":{"type":"string"},"description":"검색을 특정 지식베이스 ID로 제한합니다."},"folderIds":{"type":"array","items":{"type":"string"},"description":"검색을 특정 폴더 ID로 제한합니다."}}}}}},"responses":{"200":{"description":"성공적으로 생성된 답변","content":{"application/json":{"schema":{"type":"object","properties":{"answer":{"type":"object","description":"대시보드에 업로드된 문서에서 추출된 답변으로, answerFormat 매개변수에 따라 형식화되었습니다."},"answerHash":{"type":"string","description":"이는 피드백을 제공하거나 취소하기 위한 답변을 식별하는 데 사용됩니다."},"confidence":{"type":"number","description":"AI 모델의 신뢰도를 보여줍니다. 0과 1 사이의 숫자 값으로 표시됩니다."},"effectiveConfidence":{"type":"number","description":"쿼리 결과에 대한 피드백을 제공하면 AI 모델이 자동으로 학습합니다. 효과적인 신뢰도는 이러한 유저 및 에이전트의 피드백으로 조정된 점수입니다. 0과 1 사이의 숫자 값으로 표시됩니다."},"documentId":{"type":"string","description":"답변이 추출된 문서의 ID입니다."},"documentName":{"type":"string","description":"답변이 추출된 문서의 이름."},"hashtags":{"type":"array","description":"문서에 첨부된 해시태그."},"pageNo":{"type":"integer","description":"답이 도출된 문서의 페이지 번호."},"createdDate":{"type":"string","format":"date","description":"문서가 업로드된 날짜."},"agentFeedback":{"type":"object","description":"이 문서에 대한 에이전트의 피드백(대시보드 및 REST 호출을 통해)."},"userFeedback":{"type":"object","description":"이 문서에 대한 유저들의 피드백."},"body":{"type":"string","description":"요청에서 returnPreview가 true이면, 문서 검색 미리보기의 html 본문이 표시됩니다."},"css":{"type":"string","description":"요청에서 returnPreview가 true이면 문서 검색 미리보기의 CSS가 표시됩니다."},"pdfPreview":{"type":"string","description":"요청에서 returnPdfPreview가 true인 경우, 답변이 강조된 문서의 PDF 미리보기를 위한 URL이 표시됩니다. URL은 다운로드 IP 허용 목록 설정을 사용하여 제한될 수 있음을 유의하십시오."},"folder":{"type":"string","description":"답이 Documents 데이터베이스 아래 폴더에서 발견되면, 폴더 이름이 여기에 반환됩니다."},"editor":{"type":"array","items":{"type":"string"},"description":"문서에 편집자 접근 권한이 있는 에이전트의 이메일 목록 (Alli 대시보드에 설정되어 있는 경우)."},"viewer":{"type":"array","items":{"type":"string"},"description":"Alli 대시보드에 설정된 경우, 문서에 뷰어 액세스 권한이 있는 에이전트의 이메일 목록."},"threadId":{"type":"string","description":"isStateful이 true일 때 후속 질문에 사용할 수 있는 UUID."},"fuQuestion":{"type":"string","description":"isStateful이 true일 때 유저를 위한 권장 후속 질문."},"intent":{"type":"string","description":"쿼리의 감지된 의도."},"clues":{"type":"array","description":"요청에 단서가 True인 경우, 답변을 생성하는 데 사용된 소스가 여기에 반환됩니다."},"citations":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"Citation number referenced in the answer text as [1], [2], etc."},"clueId":{"type":"string","description":"Unique identifier for the source clue"},"source":{"type":"string","description":"Type of source (DOCUMENT, FAQ, WEB)"},"title":{"type":"string","description":"Title of the source document or FAQ"},"pageNo":{"type":"integer","description":"Page number in the source document"},"knowledgeBaseId":{"type":"string","description":"ID of the knowledge base document"},"faqId":{"type":"string","description":"ID of the FAQ entry"},"url":{"type":"string","description":"URL of web source"},"text":{"type":"string","description":"Excerpt of the source text (limited to 500 characters)"}}},"description":"If includeCitations is true in the request, structured citation information is returned here. Each citation corresponds to a [number] reference in the answer text.\n"}}}}}},"400":{"description":"잘못된 요청","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"string","description":"오류 메시지"}}}}}},"401":{"description":"무단의","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"string","description":"오류 메시지"}}}}}},"429":{"description":"속도 제한 초과","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"string","description":"rate limit 초과"}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```

## 대화 시작

> 스킬을 사용하여 대화를 시작하십시오. True고: 이 엔드포인트는 현재 메시지 노드, Q\&A 노드 및 문서 노드와만 호환됩니다.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/start_conversation":{"post":{"tags":["apps"],"operationId":"startConversation","summary":"대화 시작","description":"스킬을 사용하여 대화를 시작하십시오. True고: 이 엔드포인트는 현재 메시지 노드, Q&A 노드 및 문서 노드와만 호환됩니다.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"placement":{"type":"string","description":"어떤 스킬로 대화를 시작할지 매칭하는 데 사용됩니다."}}}}}},"responses":{"200":{"description":"성공적으로 대화를 시작했습니다.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"string","description":"방금 시작된 대화의 고유 ID."},"project":{"type":"object","properties":{"nluLanguage":{"type":"string","description":"Alli 프로젝트의 언어."}}},"chats":{"type":"object","properties":{"edges":{"type":"array","items":{"type":"object","properties":{"node":{"type":"object","properties":{"id":{"type":"string","description":"대화 ID"},"message":{"type":"string","description":"유저에게 Alli가 표시하는 텍스트 메시지입니다. 이는 Draftjs 형식입니다."},"createdAt":{"type":"number","description":"이 메시지가 전송된 시간의 타임스탬프."},"chatOptionInfos":{"type":"array","description":"Alli가 유저에게 표시할 클릭 가능한 버튼을 나타내는 각각의 JSON 객체 배열.","items":{"type":"object","properties":{"shortenOption":{"type":"string","description":"길이 제한 설정이 적용된 후의 텍스트."},"longOption":{"type":"string","description":"버튼의 텍스트 내용."},"style":{"type":"object","properties":{"bgColor":{"type":"string"},"bold":{"type":"boolean"},"fontColor":{"type":"string"},"italic":{"type":"boolean"},"lineColor":{"type":"string"},"underline":{"type":"boolean"}}},"meta":{"type":"string"}}}},"isDeleted":{"type":"boolean"}}}}}}}}}}}},"errors":{"type":"object","nullable":true}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```

## End Conversation by Agent

> End a conversation from the agent side.<br>

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/end_conversation_by_agent":{"post":{"tags":["apps"],"operationId":"endConversationByAgent","summary":"End Conversation by Agent","description":"End a conversation from the agent side.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The conversation ID to end"}}}}}},"responses":{"200":{"description":"Conversation ended successfully","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"string","description":"The conversation ID that was ended"},"completedTime":{"type":"number","description":"The timestamp when the conversation was completed"},"state":{"type":"string","description":"The state of the conversation after ending (e.g., \"END_BY_AGENT\")"},"__typename":{"type":"string","description":"GraphQL typename"}},"description":"The conversation object that was ended"},"__typename":{"type":"string","description":"GraphQL typename for the operation result"}}},"errors":{"type":"object","nullable":true,"description":"Error information if the request fails"}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```

## 대화 보내기

> 기존 대화에 대해 유저로 메시지를 보냅니다. True고: 이 엔드포인트는 현재 메시지 노드, Q\&A 노드 및 문서 노드와만 호환됩니다.

```json
{"openapi":"3.1.0","info":{"title":"Alli API Documentation","version":"1.0.0"},"tags":[{"name":"apps","description":"App related APIs"}],"servers":[{"url":"https://backend.alli.ai","description":"US"}],"security":[{"ApiKeyAuth":[]},{"TokenAuth":[]},{"ProjectIdHeader":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your API key for authentication"},"TokenAuth":{"type":"http","scheme":"bearer","description":"Your token for authentication"}},"parameters":{"AgentEmailHeader":{"name":"AGENT-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email of the agent to use for this request"},"UserEmailHeader":{"name":"USER-EMAIL","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: Email address to associate with the user"},"OwnUserIdHeader":{"name":"OWN-USER-ID","in":"header","required":false,"schema":{"type":"string"},"description":"Optional: User ID to identify or create a user"}}},"paths":{"/webapi/send_chat":{"post":{"tags":["apps"],"operationId":"sendChat","summary":"대화 보내기","description":"기존 대화에 대해 유저로 메시지를 보냅니다. True고: 이 엔드포인트는 현재 메시지 노드, Q&A 노드 및 문서 노드와만 호환됩니다.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message","conversationId"],"properties":{"message":{"type":"string","description":"대화에서 보낼 메시지. null이거나 빈 문자열일 수 없습니다."},"conversationId":{"type":"string","description":"메시지를 보내고자 하는 대화의 고유 ID입니다."}}}}}},"responses":{"200":{"description":"대화 전송 성공","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"responses":{"type":"array","description":"메시지를 나타내는 JSON 객체의 배열입니다. 첫 번째 메시지 객체는 요청의 메시지가 됩니다.","items":{"type":"object","properties":{"id":{"type":"string","description":"대화 ID"},"message":{"type":"string","description":"유저에게 표시될 텍스트 메시지는 Alli에 의해 표시됩니다. 스킬 빌더 내 노드에 설정된 텍스트 메시지는 Draftjs 형식으로 작성됩니다."},"createdAt":{"type":"number","description":"이 메시지가 생성된 타임스탬프."},"chatOptionInfos":{"type":"array","description":"유저에게 표시될 클릭 가능한 버튼을 나타내는 JSON 객체 배열.","items":{"type":"object","properties":{"shortenOption":{"type":"string","description":"길이 제한 설정이 적용된 후의 텍스트."},"longOption":{"type":"string","description":"버튼의 텍스트 내용."},"style":{"type":"object","properties":{"bgColor":{"type":"string"},"bold":{"type":"boolean"},"fontColor":{"type":"string"},"italic":{"type":"boolean"},"lineColor":{"type":"string"},"underline":{"type":"boolean"}}},"meta":{"type":"string"}}}},"isDeleted":{"type":"boolean"}}}},"state":{"type":"string","description":"메시지가 전송된 후 대화의 상태."}}},"errors":{"type":"object","nullable":true}}}}}}},"parameters":[{"$ref":"#/components/parameters/AgentEmailHeader"},{"$ref":"#/components/parameters/UserEmailHeader"},{"$ref":"#/components/parameters/OwnUserIdHeader"}]}}}}
```
