api-inference documentation

Table Question Answering

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Table Question Answering

Table Question Answering (Table QA) is the answering a question about an information on a given table.

For more details about the table-question-answering task, check out its dedicated page! You will find examples and related materials.

Recommended models

Explore all available models and find the one that suits you best here.

Using the API

Python
JavaScript
cURL
import requests

API_URL = "https://api-inference.huggingface.co/models/google/tapas-base-finetuned-wtq"
headers = {"Authorization": "Bearer hf_***"}

def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	return response.json()
	
output = query({
	"inputs": {
	"query": "How many stars does the transformers repository have?",
	"table": {
		"Repository": ["Transformers", "Datasets", "Tokenizers"],
		"Stars": ["36542", "4512", "3934"],
		"Contributors": ["651", "77", "34"],
		"Programming language": [
			"Python",
			"Python",
			"Rust, Python and NodeJS"
		]
	}
},
})

To use the Python client, see huggingface_hub’s package reference.

API specification

Request

Payload
inputs* object One (table, question) pair to answer
        table* object The table to serve as context for the questions
        question* string The question to be answered about the table
parameters object
        padding enum Possible values: do_not_pad, longest, max_length.
        sequential boolean Whether to do inference sequentially or as a batch. Batching is faster, but models like SQA require the inference to be done sequentially to extract relations within sequences, given their conversational nature.
        truncation boolean Activates and controls truncation.

Some options can be configured by passing headers to the Inference API. Here are the available headers:

Headers
authorization string Authentication header in the form 'Bearer: hf_****' when hf_**** is a personal user access token with Inference API permission. You can generate one from your settings page.
x-use-cache boolean, default to true There is a cache layer on the inference API to speed up requests we have already seen. Most models can use those results as they are deterministic (meaning the outputs will be the same anyway). However, if you use a nondeterministic model, you can set this parameter to prevent the caching mechanism from being used, resulting in a real new query. Read more about caching here.
x-wait-for-model boolean, default to false If the model is not ready, wait for it instead of receiving 503. It limits the number of requests required to get your inference done. It is advised to only set this flag to true after receiving a 503 error, as it will limit hanging in your application to known places. Read more about model availability here.

For more information about Inference API headers, check out the parameters guide.

Response

Body
(array) object[] Output is an array of objects.
        answer string The answer of the question given the table. If there is an aggregator, the answer will be preceded by AGGREGATOR >.
        coordinates array[] Coordinates of the cells of the answers.
        cells string[] List of strings made up of the answer cell values.
        aggregator string If the model has an aggregator, this returns the aggregator.
< > Update on GitHub