Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Пример поиска запроса 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

curl -H "Content-Type: application/json" -XPOST https://api.autofaq.ai/v1/query/batch -d '
[
 {"service_id": 89237, "service_token": "1cabef60a1ef44b34b3127295312acc6f", "query": "привет", "top_k": 3 },
 {"service_id": 107742, "service_token": "46b30dc373644e24a557135a60287099", "query": "сколько стоит", "top_k": 3 }
]
'
  • No labels