Alli Generative Answer API
Generative Answer API를 사용하면 여러 소스 문서를 바탕으로 LLM 모델이 질문에 대한 답변을 생성할 수 있습니다.
Last updated
Generative Answer API를 사용하면 여러 소스 문서를 바탕으로 LLM 모델이 질문에 대한 답변을 생성할 수 있습니다.
Last updated
각 요청의 헤더에 프로젝트에 할당된 API-KEY
를 제공해야 합니다. API 키는 대시보드의 설정 메뉴 아래 일반 탭에서 찾을 수 있습니다.
특정 엔드포인트에는 리퀘스트 헤더에 에이전트나 유저 정보를 이용해 누가 API 콜을 실행하는지 지정할 수 있습니다.
유저 정보는 OWN-USER-ID
에 유저 ID 를 입력하여 제공할 수 있습니다. 기존 유저 ID 를 사용하거나 새로운 ID 를 사용할 수 있으며, 새로운 ID 가 입력되면 Alli 가 해당 ID 로 신규 유저를 생성합니다. 이후 같은 OWN-USER-ID
헤더가 사용되면 해당 콜은 동일 유저가 실행한 것으로 인식됩니다.
OWN-USER-ID
(optional): 프로젝트에서 사용할 User ID (User ID별로 session 이 관리됩니다.) 기존에 존재하지 않는 User ID 를 사용할 시, 새로운 User 가 생성됩니다. OWN-USER-ID
를 입력하지 않을 시 프로젝트 별 기본 USER ID
가 사용이 되며, threadId
기능을 사용할 수 없게 됩니다.
또한 유저 ID 를 사용할 때 유저의 이메일 정보를 업데이트할 수 있습니다. USER-EMAIL
헤더에 업데이트를 원하는 이메일을 입력하면 됩니다. 아래는 입력 예시입니다.
OWN-USER-ID
에는 ASCII 캐릭터만 사용할 수 있습니다. 사용하고자 하는 유저 ID 에 ASCII 캐릭터가 아닌 캐릭터가 포함되는 경우, base64 인코딩 후 base64:CONVERTED_ID 형식을 사용할 수 있습니다.
유저 ID 정보는 Alli 대시보드의 고객 메뉴에서 확인할 수 있습니다.
예상했던 response 를 받지 못한 경우 에러 메시지를 확인해 주세요. 예를 들어 잘못된 HTTP 메소드를 사용한 경우 아래와 같은 형식의 에러 메시지가 리턴됩니다.
POST
https://backend.alli.ai/webapi/generative_answer
Generative Answer API는 비정형 텍스트 문서, Q&A 및 복잡한 테이블에서도 답변을 생성할 수 있습니다.
promptGroupId 참조하는 방법
You will get the result as the following JSON format:
answer: It's the answer extracted from uploaded documents in the dashboard.answerHash: This is used to identify the answer to give or cancel feedback.
answerHash: This is used to identify the answer to give or cancel feedback.
confidence: It shows the confidence value from AI model. Shown as a number value between 0 and 1.
effectiveConfidence: When you provide feedback to the query result, it automatically trains the AI model. Effective confidence is the adjusted score with these users' and agents' feedback. Shown as a number value between 0 and 1.
documentId: The document's ID where the answer is extracted from.
documentName: The document's name where the answer is extracted from.hashtags: The hashtags attached to the document.
pageNo: The page number in the document where the answer was derived.
createdDate: The date when the document was uploaded.
agentFeedback: The feedback from agents (through dashboard and REST calls) about this document
userFeedback: The feedback from users about this document
body: If returnPreview is true in the request, the html body of the document search preview is displayed.
css: If returnPreview is true in the request, the css of the document search preview is displayed.
pdfPreview: If returnPdfPreview is true in the request, the URL to a PDF preview of the document with the answer highlighted is displayed. Note that the URL can be restricted using the Download IP Allowlist setting.
folder: If the answer is found from a folder under the Documents database, the folder name will be returned here.
editor: List of the agents' email who has the editor access to the documents (if they're set in the Alli dashboard).
viewer: List of the agents' email who has the viewer access to the documents. (if they're set in the Alli dashboard).
The number of search results and the threshold follows your dashboard setting. Please check your setting in Documents > Settings.
YOUR API KEY
를 프로젝트의 API 키로 바꾸어야 합니다.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
API-KEY(required)*
string
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
OWN-USER-ID(optional)
string
프로젝트에서 사용할 User ID (User ID별로 session 이 관리됩니다.) 기존에 존재하지 않는 User ID 를 사용할 시, 새로운 User 가 생성됩니다. OWN-USER-ID
를 입력하지 않을 시 프로젝트 별 기본 USER ID
가 사용이 되며, threadId
기능을 사용할 수 없게 됩니다.
query(required)
string
문자열 형식의 검색 쿼리입니다.
model(required)
string
답변을 생성할 LLM을 선택할 수 있습니다. 기본 모델은 GPT 3.5 Turbo입니다. 사용 가능한 모델 옵션은 하기 표를 참조해 주세요.
answer_format
string
DRAFTJS 혹은 MARKDOWN입니다. 기본값은 DRAFTJS입니다.
ThreadId
string(UUID)
threadId는 Stateful = True
일 때 사용됩니다.
처음 대화를 시작할 때는 공백이며 그 다음 쿼리부터는 출력의 threadId를 사용합니다. 처음 대화부터 threadId를 설정하고 싶은 경우에는 UUID 형식으로 작성할 필요가 있습니다.
예시 UUID - 36e7bb2b-1063-47ec- (Default = None)
isStateful
Boolean
후속 질문을 사용하기 위해서는 이전 대화 이력이 필요합니다. 대화 이력은 threadId
를 통해 관리됩니다. isStateful
option을 True로 설정하고threadId
를 입력하면 이전 대화 이력을 바탕으로 쿼리가 재작성됩니다.
(Default = False)
promptGroupId(required)
String
답변 생성에 사용되는 프로젝트의 그룹 프롬프트입니다. 해당 설정은 디폴트로 제공된 그룹 프롬프트를 편집해서 사용하는 경우에 유효합니다. Id는 프로젝트 설정 > 프롬프트 관리 > 답변 생성 > 그룹 프롬프트 탭에서 사용 중인 그룹 프롬프트를 선택할 때 표시된 URL을 통해 Id를 확인할 수 있습니다.
예시 링크 : https://app.alli.ai/projects/UHJvamVjdDo2NTwNmI4Y2RkZTJiMzg4OTE=/settings/prompt-management/generative-answer/groups/TEqNUHJvbXA0R3JvdXA6NoU2ZmY2MGZkOGQ7MDU5MjdhNWYwMDBk groups 뒤 빨간 텍스트가 Prompt Group ID입니다.
mode
String
데이터를 Stream 하게 출력할지, Sync 로 출력할지 여부를 결정할 수 있습니다 (Default=sync)
Stream 모드일 경우, Sync 와 동일한 out format 의 json string 을 streaming 하게 출력합니다.
hashtags
json
search_from 의 값 중 qna
, document
카테고리의 hashtag를 지정하는 데 사용됩니다.
예) "hashtags" : { "qnaInclude" : ["hash name", "hash name2"], "qnaIncludeOption" : "and"/"or", "qnaExclude" : ["hash name", "hash name2"], "qnaExcludeOption" : "and"/"or", "docsInclude" : ["hash name", "hash name2"], "docsIncludeOption" : "and"/"or", "docsExclude" : ["hash name", "hash name2"], "docsExcludeOption" : "and"/"or", }
search_from(required)
json
Generative Answer 에서 데이터를 찾기 위한 소스 데이터의 범위를 지정합니다. 현재 사용 가능한 값은, web
, qna
, document
와 같으며, list 형태로 데이터를 입력합니다.
예) [“web”, “qna”]