Alli Generative Answer API
Alliの回答自動生成機能は、質問の意味と意図を理解し、ソースとなる膨大なドキュメントのデータから検索を実施することで、正確かつ横断的な回答を生成する機能を備えています。
全てのアカウントがAlliの回答自動生成機能を利用できるわけではありません。 当社の回答自動生成機能にご興味がございましたら、弊社Customer Success担当までお問い合わせください。
APIキーの取得

ユーザー情報の提供
リクエスト ヘッダーにユーザー情報を追加して、どのユーザーがAPIを呼び出すかを指定できます。
ユーザー ID はリクエスト ヘッダーの
OWN-USER-ID
に指定できます。ユーザー ID は新しいものでも既存のものでもよく、新しいユーザー ID が指定された場合、Alli はその ID を持つ新しいユーザーを作成します。 同じ OWN-USER-ID
ヘッダーを持つ今後の API 呼び出しは、同じユーザーからのものであるとみなされます。 ユーザーのメールアドレスを同時に更新する場合は、リクエスト ヘッダー USER-EMAIL
にメールアドレスを指定できます。 以下に例を示します。
-H 'OWN-USER-ID: 5f1234567a409876c082487z' \
-H 'USER-EMAIL: [email protected]'
OWN-USER-ID
には非 ASCII 文字を使用できません。ユーザー ID に非 ASCII 文字が含まれている場合は、ID を Base64 にエンコードし、base64:CONVERTED_ID を使用できます。
保存されたユーザー ID とメールアドレスの情報は、Alli ダッシュボード上の [顧客] メニューで確認できます。

エラーメッセージ
予想されるresponseがない場合は、エラーメッセージを確認してください。例えば、間違ったHTTPメソッドを使用した場合、以下のような形式のエラーメッセージが戻ります。
{“errors”: “Method Not Allowed PUT: /webapi/generative_answer”}
Generative Answer
POST
https://backend-ja.alli.ai/webapi/generative_answer
Generative Answer API は、非構造化テキスト ドキュメント、Q&A、さらには複雑な表からも回答を見つけ、生成します。
Headers
API-KEY*
string
割り当てられたAPIキーです。プロジェクト設定メニュー>一般タブから確認できます。
OWN-USER-ID
string
ユーザーの ID を指定することで、この API 呼び出しを行うユーザーを特定できます。ここで指定するIDは、ダッシュボードの [顧客リスト]>[CUSTOMER_ID] もしくは[会話履歴]>[対話情報]にて確認できます。
Request Body
query*
string
質問文の文字列になります。
model
string
回答を生成するときに、選択した LLM を利用します。 デフォルトのモデルは GPT 3.5 Turbo です。
answer_format
string
応答の形式を特定して、統合をより簡単にするために応答の形式を確認してください。
サポートされているのは、DRAFTJS
と MARKDOWN
です。
デフォルトの形式は、DRAFTJS
です。
isStateful
Boolean
後続質問の機能を使用するには、以前の会話履歴が必要です。 会話履歴は threadId で管理されます。 isStateful optionをTrueに設定し、threadIdと入力すると、以前の会話履歴に基づいてクエリが再作成されます。 (Default = False)
ThreadId
string(UUID)
threadId は Stateful=True のときに使用されます。
最初の会話を開始するときは空白で、次のクエリからは出力のthreadIdを使用します。 最初の会話からthreadIdを設定したい場合は、UUID形式で作成する必要があります。
例 UUID - 36e7bb2b-1063-47ec- (Default = None)
promptGroupId*
string
回答生成に使用するプロジェクトのグループプロンプトを選択します。この設定は、デフォルトで準備されたグループプロンプトから変更を行い利用している場合などに有効です。
IDはプロジェクト設定>プロンプト管理>回答生成タブの選択します。使用するグループプロンプトを選択した際に表示されるURLからIDが確認できます。
例 :https://app.alli.ai/projects/UHJvamVjdDo2NDljYTRjZDMzMGY2MDZkYWRjOPOjNjE=/settings/prompt-management/generative-answer/groups/TExNUHJvbXB0R3JvdXA6NjUzNzc3MzA5GHUyMGE2ZjlhM2Q5OTIw
mode
string
データをsyncかstreamのどちらで出力するか設定します。(Default = sync)
streamモードの場合、syncと同じ出力形式のjson文字列がstreamとして出力されます。
clues
boolean
回答を生成するために使用されたclueを出力に含めるかどうか設定できます。(Default = False)
clueTxet
boolean
clueTextはclues=Trueの時に利用できるオプションです。
clueに用いたドキュメントのテキスト情報を含めるかどうか設定できます。(Default = False)
hashtags
json
ハッシュタグを使用してドキュメントとFAQの検索範囲を指定できます。 特定のハッシュタグを含めたり除外したり、選択したハッシュタグのオプションを指定したりできます。
例:
{ "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", }
searchFrom
json
Generative Answer がデータを検索するソース データの範囲を指定します。現在使用可能な値は、web、qna、document、およびリスト形式でのデータ入力です。 例: ["web", "qna"]
結果は以下の JSON 形式で取得されます。
{
"answer": "ANSWER",
"intent": "INTENT",
"threadId": "threadId",
"fuQuestion": "fuQuestion",
"clues": {
"clueId": "CLUE_ID_1",
"source": "SOURCE",
"title": "TITLE_1",
"pageNo": "PageNo_1",
"kbId": "kbId_1",
"faqId": "faqId_1"
}
}
Request Example
YOUR API KEYをプロジェクトのAPIキーに変更しなければなりません。APIキーの取得の項目をご参照ください。
curl -X POST -d '{
"query": "can I disclose the composite ratings?",
"model": "gpt4",
"isStateful": "True",
"threadId": "UUID",
"mode": "sync" ,
"hashtags":{"docsInclude" : ["test"], "docsIncludeOption" : "or"}
}' \
-H 'API-KEY: REST_API_KEY' \
-H 'Content-Type: application/json' \
-H 'OWN-USER-ID: [email protected]' \
https://backend-ja.alli.ai/webapi/generative_answer
Response Example
{
"answer": "{\"blocks\": [{\"key\": \"k0\", \"text\": \"看護休暇については、以下の情報があります。\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k1\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k2\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k3\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k4\", \"text\": \"1. 小学校就学の始期に達するまでの子がいる労働者は、病気または怪我をした子の看護のために、年次有給休暇とは別に看護休暇を取得することができます。ただし、日々雇い入れられる者は除かれます [2]。\", \"inlineStyleRanges\": [], \"entityRanges\": [{\"key\": 0, \"offset\": 94, \"length\": 3}], \"type\": \"unstyled\"}, {\"key\": \"k5\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k6\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k7\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k8\", \"text\": \"2. 看護休暇の日数は、労働者1人当たり1年間で5日を限度とします。この場合の1年間とは、4月1日から翌年の3月31日までの期間を指します [2]。\", \"inlineStyleRanges\": [], \"entityRanges\": [{\"key\": 0, \"offset\": 70, \"length\": 3}], \"type\": \"unstyled\"}, {\"key\": \"k9\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k10\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k11\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k12\", \"text\": \"3. 看護休暇中の賃金は無給とされます [2]。\", \"inlineStyleRanges\": [], \"entityRanges\": [{\"key\": 0, \"offset\": 20, \"length\": 3}], \"type\": \"unstyled\"}, {\"key\": \"k13\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k14\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k15\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k16\", \"text\": \"4. 看護休暇を取得するためには、所定の申請用紙に必要事項を記載の上、総務部長に届け出る必要があります [2]。\", \"inlineStyleRanges\": [], \"entityRanges\": [{\"key\": 0, \"offset\": 52, \"length\": 3}], \"type\": \"unstyled\"}, {\"key\": \"k17\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k18\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k19\", \"text\": \"\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}, {\"key\": \"k20\", \"text\": \"以上が看護休暇に関する情報です。\", \"inlineStyleRanges\": [], \"entityRanges\": [], \"type\": \"unstyled\"}],
\"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"isFromKnowledgeBase\": true, \"source\": \"DOCUMENT\", \"url\": \"https://app.alli.ai/projects/UHJvamVjdDo2NTRiNTc0NjdlMzc0ZTJhY2JmMzgzYjQ=/knowledgeBases/S25vd2xlZGdlQmFzZTo2NTRjZDMxYjU1N2VkODU2M2Y4MzEyYWU=/preview?page=4\", \"knowledgeBasePreview\": {\"pageNo\": 4, \"totalPageCount\": 10, \"knowledgeBase\": {\"id\": \"S25vd2xlZGdlQmFzZTo2NTRjZDMxYjU1N2VkODU2M2Y4MzEyYWU=\", \"title\": \"就業規則.pdf\"}, \"clueId\": \"Q29nbml0aXZlQ2x1ZTo2Njk1Y2I2ZGE0NmY3M2MwYThmZWM0OWFfMQ==\", \"answerHighlightId\": \"Q29nbml0aXZlQ2x1ZTo2Njk1Y2I2ZGE0NmY3M2MwYThmZWM0OWFfMQ==\"}}}}}",
"intent": "SEARCH",
"threadId": "7d80f4a1-1e8f-41ea-aba0-261df161db35",
"fuQuestion": null,
"clues": [
{
"clueId": "Q29nbml0aXZlQ2x1ZTo2Njk1Y2I2ZGE0NmY3M2MwYThmZWM0OWFfMA==",
"source": "FAQ",
"title": "病気の際の休暇について",
"pageNo": null,
"kbId": null,
"faqId": "RkFROjY1ZTZlZjJjZDc3OTRiMzQ2MDUyZGM4Mg=="
},
{
"clueId": "Q29nbml0aXZlQ2x1ZTo2Njk1Y2I2ZGE0NmY3M2MwYThmZWM0OWFfMQ==",
"source": "DOCUMENT",
"title": "xxxxx.pdf",
"pageNo": 4,
"kbId": "S25vd2xlZGdlQmFzZTo2NTRjZDMxYjU1N2VkODU2M2Y4MzEyYWU=",
"faqId": null
},
{
"clueId": "Q29nbml0aXZlQ2x1ZTo2Njk1Y2I2ZGE0NmY3M2MwYThmZWM0OWFfMg==",
"source": "DOCUMENT",
"title": "yyyyy.pdf",
"pageNo": 8,
"kbId": "S25vd2xlZGdlQmFzZTo2Njc5NGFkNGQ0ZjA2MzZlOWRlMDRiYTU=",
"faqId": null
}
]
}
Cluesにdocumentを指定した場合、プレビュー用のURLは、レスポンスボディ"answer"内の"url"に値として返ります。
Last updated
Was this helpful?