QAnswer: Api Documentation
Project description
QAnswer Python SDK
Official Python SDK for the QAnswer API, automatically generated from the OpenAPI specification.
This SDK allows Python applications to interact with QAnswer's services programmatically without needing to craft raw HTTP requests.
🚀 Features
- Full coverage of QAnswer API endpoints
- Type-safe models via Pydantic
- Easy configuration of authentication and base URL
- Auto-generated and versioned with each API release
📦 Installation
You can install from PyPI:
pip install qanswer-sdk
Or add it to your requirements.txt
qanswer-sdk==3.1184.0
🔑 Authentication
Most endpoints require authentication. You can configure authentication in several ways:
API Key Authentication
from qanswer_sdk import Configuration, ApiClient
from qanswer_sdk.api.chatbot_api import ChatbotApi
# Configure API key authorization
config = Configuration(
host="https://app.qanswer.ai/backend",
api_key={"QAnswer-Api-Key": "your-api-key-here"}
)
# Initialize client
with ApiClient(config) as client:
api = ChatbotApi(client)
# Use the API...
Bearer Token Authentication
from qanswer_sdk import Configuration, ApiClient
from qanswer_sdk.api.chatbot_api import ChatbotApi
# Configure Bearer token authorization
config = Configuration(
host="https://app.qanswer.ai/backend",
access_token="your-jwt-token-here"
)
# Initialize client
with ApiClient(config) as client:
api = ChatbotApi(client)
# Use the API...
📖 Usage Examples
Chatbot API
from qanswer_sdk import Configuration, ApiClient
from qanswer_sdk.api.chatbot_api import ChatbotApi
from qanswer_sdk.models.chatbot_chat_payload import ChatbotChatPayload
config = Configuration(
host="https://app.qanswer.ai/backend",
api_key={"QAnswer-Api-Key": "your-api-key"}
)
with ApiClient(config) as client:
api = ChatbotApi(client)
# Create chat payload
payload = ChatbotChatPayload(
question="What is artificial intelligence?",
username="admin",
conversation_id="df150332-97c2-4b6a-9d83-cd35e14cf89c",
llm_choice="openai-large"
# Add other required fields based on your model
)
# Send chat message
response = api.free_text_chatbot_chat(payload)
print(response.ai_response) # Access response data
Chat Completion API
from qanswer_sdk.api.chat_completion_api import ChatCompletionApi
with ApiClient(config) as client:
api = ChatCompletionApi(client)
# Use chat completion endpoints...
Handle Different Response Types
# Get just the data
response_data = api.free_text_chatbot_chat(payload)
# Get full HTTP response info
full_response = api.free_text_chatbot_chat_with_http_info(payload)
print(full_response.status_code)
print(full_response.headers)
print(full_response.data)
# Get raw HTTP response for streaming
raw_response = api.free_text_chatbot_chat_without_preload_content(payload)
⚙️ Configuration Options
from qanswer_sdk import Configuration
config = Configuration(
host="https://app.qanswer.ai/backend", # API base URL
api_key={"QAnswer-Api-Key": "your-key"}, # API key auth
access_token="jwt-token", # Bearer token auth
username="user", # Basic auth username
password="pass", # Basic auth password
verify_ssl=True, # SSL verification
ssl_ca_cert="/path/to/ca.pem", # Custom CA certificate
connection_pool_maxsize=10, # Connection pool size
retries=3, # Number of retries
debug=False, # Enable debug logging
proxy="http://proxy:8080" # Proxy URL
)
🛠 Error Handling
from qanswer_sdk.exceptions import (
ApiException,
BadRequestException,
UnauthorizedException,
NotFoundException
)
try:
response = api.free_text_chatbot_chat(payload)
except UnauthorizedException:
print("Invalid authentication credentials")
except BadRequestException as e:
print(f"Bad request: {e}")
except ApiException as e:
print(f"API error: {e.status} - {e.reason}")
📝 Models and Type Safety
All request and response objects are Pydantic models with full type safety:
from qanswer_sdk.models.chatbot_chat_payload import ChatbotChatPayload
from qanswer_sdk.models.chatbot_response import ChatbotResponse
# Create typed request payload
payload = ChatbotChatPayload(
message="Hello",
# IDE will provide autocomplete for available fields
)
# Response is fully typed
response: ChatbotResponse = api.free_text_chatbot_chat(payload)
# Access typed response fields with autocomplete
print(response.answer)
📌 Versioning
This SDK follows the version of the QAnswer API.
The current version is: 3.2032.0 (branch: main)
🤝 Support
For issues related to:
- SDK usage: Open an issue in this repository
- API functionality: Contact QAnswer support
- Authentication: Check your API key and permissions
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by The QA Company
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qanswer_sdk-3.2032.0.tar.gz.
File metadata
- Download URL: qanswer_sdk-3.2032.0.tar.gz
- Upload date:
- Size: 313.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3d67494a5c92e939e8dd5ef391a9a317858fba228f7f7a7e03085e7434ab48e
|
|
| MD5 |
d80d41a7f7c0e5299bc324fb7fbaae14
|
|
| BLAKE2b-256 |
57ddf0bec0d3f14728d18ea173e727578edb05b30f38fe5f0ed876c938082ebb
|
File details
Details for the file qanswer_sdk-3.2032.0-py3-none-any.whl.
File metadata
- Download URL: qanswer_sdk-3.2032.0-py3-none-any.whl
- Upload date:
- Size: 943.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.8.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cef372cb52c84781778281916e77d27532b59089c314450d726f27bc72e810c0
|
|
| MD5 |
440ecd37b9f4077e22e348163fd8faa5
|
|
| BLAKE2b-256 |
0d9eb27dd46aba053e5e17adb90f9073d628c1f22dcdfa68d77e9f8a4ce5dea9
|