This document explains how to interact with the Lyzr Chatbot API using Python scripts. The examples use the requests
library to perform HTTP requests to the API endpoints.
Prerequisites
-
Ensure that the Docker container is running.
-
Install the requests
library if you haven’t already:
Base URL
Update the BASE_URL
variable to match the server’s actual address if necessary.
BASE_URL = "<http://localhost:8000>"
Creating a Chatbot Configuration
Sample Configuration
{
"exclude_hidden": true,
"filename_as_id": true,
"recursive": true,
"required_exts": [
"string"
],
"system_prompt": "",
"query_wrapper_prompt": "",
"embed_model": {
"embedding_type": "OpenAIEmbedding",
"model ": "text-embedding-ada-002",
"api_key": "sk-"
},
"llm_params": {
"model": "gpt-4-1106-preview",
"api_key": "sk-",
"stream": true
},
"vector_store_params": {
"vector_store_type": "WeaviateVectorStore",
"url": "https://<domain>.weaviate.network",
"api_key": "",
"index_name": "LyzrCore"
},
"service_context_params": {},
"chat_engine_params": {
"chat_mode": "context",
"similarity_top_k": 50,
"system_prompt": "You are a helpful Assistant"
},
"retriever_params": {
"retriever_type": "Simple"
}
}
To create a new chatbot configuration, send a POST request to the /create/config
endpoint.
import requests
import json
config = {
"exclude_hidden": True,
"filename_as_id": True,
"recursive": True,
"required_exts": ["string"],
"system_prompt": "",
"query_wrapper_prompt": "",
"embed_model": {
"embedding_type": "OpenAIEmbedding",
"model": "text-embedding-ada-002",
"api_key": "sk-"
},
"llm_params": {
"model": "gpt-4-1106-preview",
"api_key": "sk-",
"stream": True
},
"vector_store_params": {
"vector_store_type": "WeaviateVectorStore",
"url": "https://<domain>.weaviate.network",
"api_key": "",
"index_name": "LyzrCore"
},
"service_context_params": {},
"chat_engine_params": {
"chat_mode": "context",
"similarity_top_k": 50,
"system_prompt": "You are a helpful Assistant"
},
"retriever_params": {
"retriever_type": "Simple"
}
}
response = requests.post(f"{BASE_URL}/create/config", json=config)
response.raise_for_status()
config_id = response.json()
print(f"Config ID: {config_id}")
Creating a Chatbot from PDF Files
To create a new chatbot instance from multiple PDF files, send a POST request to the /create/from-pdf/{config_id}
endpoint.
import requests
files = [
('files', ('test1.pdf', open('path/to/test1.pdf', 'rb'), 'application/pdf')),
('files', ('test2.pdf', open('path/to/test2.pdf', 'rb'), 'application/pdf'))
]
response = requests.post(f"{BASE_URL}/create/from-pdf/{config_id}", files=files)
response.raise_for_status()
chatbot_info = response.json()
print(f"Chatbot Info: {chatbot_info}")
Checking Chatbot Status
To check if a chatbot instance exists, send a GET request to the /check/{chatbot_id}
endpoint.
import requests
response = requests.get(f"{BASE_URL}/check/{chatbot_info['chatbot_id']}")
response.raise_for_status()
status = response.json()
print(f"Chatbot Status: {status}")
Chatting with the Chatbot
To interact with a specific chatbot instance, send a POST request to the /chat/{chatbot_id}
endpoint with a message and chat history.
import requests
chat_history = [
{"role": "user", "content": "Hello, how are you?"}
]
data = {
"message": "Tell me about the PDFs",
"chat_history": chat_history
}
response = requests.post(f"{BASE_URL}/chat/{chatbot_info['chatbot_id']}", json=data)
response.raise_for_status()
chat_response = response.json()
print(f"Chat Response: {chat_response}")
Health Check
To perform a health check on the API, send a GET request to the /health
endpoint.
import requests
response = requests.get(f"{BASE_URL}/health")
response.raise_for_status()
health_status = response.json()
print(f"Health Status: {health_status}")
Recreating a Chatbot with New Configuration
To recreate a chatbot instance with a new configuration, send a POST request to the /recreate/{chatbot_id}/{config_id}
endpoint with the new configuration.
import requests
import json
new_config = {
"name": "UpdatedChatBot",
"description": "This is an updated test chatbot",
"version": "1.1"
}
response = requests.post(f"{BASE_URL}/recreate/{chatbot_info['chatbot_id']}/{config_id}", json=new_config)
response.raise_for_status()
recreate_status = response.json()
print(f"Recreate Status: {recreate_status}")
Creating a Chatbot from DOCX Files
To create a new chatbot instance from multiple DOCX files, send a POST request to the /create/from-docx/{config_id}
endpoint.
import requests
files = [
('files', ('test1.docx', open('path/to/test1.docx', 'rb'), 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')),
('files', ('test2.docx', open('path/to/test2.docx', 'rb'), 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'))
]
response = requests.post(f"{BASE_URL}/create/from-docx/{config_id}", files=files)
response.raise_for_status()
chatbot_info = response.json()
print(f"Chatbot Info: {chatbot_info}")
Creating a Chatbot from Text Files
To create a new chatbot instance from multiple text files, send a POST request to the /create/from-text/{config_id}
endpoint.
import requests
files = [
('files', ('test1.txt', open('path/to/test1.txt', 'rb'), 'text/plain')),
('files', ('test2.txt', open('path/to/test2.txt', 'rb'), 'text/plain'))
]
response = requests.post(f"{BASE_URL}/create/from-text/{config_id}", files=files)
response.raise_for_status()
chatbot_info = response.json()
print(f"Chatbot Info: {chatbot_info}")
This documentation provides step-by-step instructions on how to interact with the Chatbot API using Python scripts. Adjust the BASE_URL
as necessary to match the server’s actual address.