/
Пример QNA batch query
Пример QNA batch query
Пример поиска запроса query_text
во всех опубликованных БЗ.
Сначала получаем список опубликованных БЗ и их service_token
которые нужны для query/batch
Затем получаем top_k
документов из каждой БЗ по запросу query_text
и объединяем их в общий список, сортируем чтобы получить общий top_k
от всех опрошенных БЗ.
Python example
import requests
import pprint
user_token = 'XXXXXXXXXXXXXXXXXXXXXXXXX'
query_text = 'test'
top_k = 3
print('1. collect all available knowledge bases')
r = requests.get('https://croc-chat.autofaq.ai/core-api/crud/api/v1/services', headers={'AUTOFAQ-User-Token': user_token})
kb_services = r.json()
pprint.pprint(kb_services)
print('2. send query to all published')
batch_query = []
for item in kb_services:
if item['status'] == 'Serving':
batch_query.append({
'service_id': item['service_id'],
'service_token': item['tokens'][0],
'query': query_text,
'top_k': top_k,
})
r = requests.post('https://croc-chat.autofaq.ai/core-api/query/api/v1/query/batch', json=batch_query)
batch_response = r.json()
print('batch response')
pprint.pprint(batch_response)
for i, item in enumerate(batch_response):
print(f'\n Top {top_k} documents found from {kb_services[i]["service_id"]} - {kb_services[i]["name"]}')
pprint.pprint(item['results'])
print('3. merge results and sort together by score')
total_results = []
[total_results.extend(item['results']) for item in batch_response]
pprint.pprint(sorted(total_results, key=lambda x: x['score'], reverse=True))
curl example
Пример запроса в 3 БЗ.
Если есть ответ от БЗ то ответ для нее будет в поле results
Если БЗ отсутствует то код ошибки в поле error
= no_service
Если БЗ остановлена, то код ошибки в поле error
= service_stopped
При указании некорректного service_token
код ошибки в поле error
= bad_token
Пример запроса и ответа QNA batch query API:
$curl -H "Content-Type: application/json" -XPOST https://api.autofaq.ai/v1/query/batch -d '
[
{"service_id": 107742, "service_token": "46b30dc373644e24a557135a60287099", "query": "сколько стоит", "top_k": 3 },
{"service_id": 107742, "service_token": "xxx", "query": "тест", "top_k": 3 },
{"service_id": 100500146, "service_token": "1234", "query": "тест", "top_k": 3 }
]
'
[
{
"results": [
{
"document_id": 1802226,
"name": "Стоимость и описание продукта",
"question": "Сколько стоит?",
"answer": "Во вложении наш прайс-лист и презентация продукта.<br>\nОбратите внимание, что стоимость нашего сервиса не зависит от количества подключенных баз знаний или операторов. У нас несколько тарифов в зависимости от объема запросов к системе и желаемого функционала. Есть расширенные пакеты услуг для крупных клиентов. Пожалуйста, оставьте ваш email или телефон, мы с вами свяжемся и всё расскажем. 🙂",
"ext": {
"comment": "",
"answerType": "Answer",
"import_excel_doc_id": null,
"import_excel_answer_type": "",
"modifiedAt": 1682271809629,
"modifiedByUserId": "0be1cd96-0a34-4348-bfd8-a0ddfecaabab",
"modifiedByUserName": "Владислав Беляев"
},
"attachments": [
{
"attachment_id": 3363,
"name": "AutoFAQ_price_list_2023.pdf"
},
{
"attachment_id": 3362,
"name": "AutoFAQ для клиентской поддержки_2023.pdf"
}
],
"modified_at": "2023-04-23T17:43:30",
"expired_at": null,
"status": "OK",
"context": [],
"answers": null,
"score": 1.0
},
{
"document_id": 965210,
"name": "Интеграции",
"question": "как с вами интегрироваться",
"answer": "С AutoFAQ можно интегрироваться через API или диалоговые <a href=\"https://deephack.atlassian.net/wiki/spaces/AKB/pages/1220542465\">сценарии</a><br>\n<br>\n",
"ext": {
"answerType": "Answer",
"comment": "",
"modifiedAt": 1597766871223,
"modifiedByUserId": "0be1cd96-0a34-4348-bfd8-a0ddfecaabab",
"modifiedByUserName": ""
},
"attachments": [],
"modified_at": "2020-08-18T16:07:51",
"expired_at": null,
"status": "OK",
"context": [],
"answers": null,
"score": 0.46
},
{
"document_id": 719291,
"name": "Демо или пилот",
"question": "Можете организовать демо?",
"answer": "Во вложении краткая презентация продукта с кейсами использования.<br>\nМы будем рады организовать звонок или подъехать к вам для демонстрации системы. Пожалуйста, оставьте email или телефон, мы свяжемся с Вами и всё расскажем.",
"ext": {
"answerType": "Answer",
"comment": "",
"modifiedAt": 1680726327474,
"modifiedByUserId": "cf5ac283-b029-4e2a-992a-cf9651a2e0ba",
"modifiedByUserName": "irina@autofaq.ai"
},
"attachments": [
{
"attachment_id": 3280,
"name": "AutoFAQ для клиентской поддержки_2023.pdf"
}
],
"modified_at": "2023-04-05T20:25:33",
"expired_at": null,
"status": "OK",
"context": [],
"answers": null,
"score": 0.43
}
],
"query_tokens": [
"сколько",
"стоит"
],
"query_id": "d33a4f6ff74b49e69ae086caa9b9a8f3",
"session_id": "12de0bf0af0b416d9a02772eacf2b3f3"
},
{
"message": "Access Denied (incorrect token)",
"error": "bad_token"
},
{
"message": "No such service",
"error": "no_service"
}
]
, multiple selections available,
Related content
Справочник шагов сценария
Справочник шагов сценария
Read with this
API
More like this
Электронная почта
Электронная почта
Read with this
Примеры сценариев (старая версия)
Примеры сценариев (старая версия)
Read with this
5.6.6
Read with this