Skip to main content

Managing Chatbots

List, update, and organize your chatbots.

List Chatbots

View all your created chatbots.

Via Web Interface

  1. Navigate to Chatbots in the sidebar
  2. View all chatbots with:
    • Name and type
    • Model used
    • RAG status
    • Creation date
    • Last activity

Via API

import requests

response = requests.get(
"http://localhost/api/v1/chatbot/list",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)

chatbots = response.json()["chatbots"]
for bot in chatbots:
print(f"ID: {bot['id']}")
print(f"Name: {bot['name']}")
print(f"Model: {bot['model']}")
print(f"RAG Enabled: {bot.get('use_rag', False)}")
print(f"Created: {bot['created_at']}")
print("-" * 40)

Get Chatbot Details

Retrieve full configuration for a specific chatbot.

chatbot_id = "your-chatbot-id"

response = requests.get(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)

chatbot = response.json()
print(f"Name: {chatbot['name']}")
print(f"System Prompt: {chatbot['system_prompt']}")
print(f"Temperature: {chatbot['temperature']}")
print(f"RAG Collection: {chatbot.get('rag_collection', 'N/A')}")

Update Chatbot

Modify an existing chatbot's configuration.

Update Personality

chatbot_id = "your-chatbot-id"

response = requests.put(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"system_prompt": "You are now a senior customer support agent. Provide detailed, technical solutions.",
"temperature": 0.2, # Lower temperature for more focused responses
"fallback_responses": [
"Let me research that for you.",
"I'll connect you with our technical team."
]
}
)

print(f"Updated chatbot: {response.json()['name']}")

Update RAG Settings

response = requests.put(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"use_rag": True,
"rag_collection": "updated_docs_collection",
"rag_top_k": 7, # Increase for more context
"similarity_threshold": 0.6
}
)

Change Model

response = requests.put(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "gpt-4" # Upgrade to more capable model
}
)

Advanced Updates

response = requests.put(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"max_tokens": 2000,
"memory_length": 30
}
)

Delete Chatbot

Remove a chatbot you no longer need.

Via Web Interface

  1. Navigate to Chatbots
  2. Find the chatbot to delete
  3. Click Delete
  4. Confirm deletion

Via API

chatbot_id = "your-chatbot-id"

response = requests.delete(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)

if response.status_code == 204:
print("Chatbot deleted successfully")
else:
print(f"Error: {response.json()}")

Clone Chatbot

Create a new chatbot based on an existing one.

# Get original chatbot
original_id = "original-chatbot-id"

get_response = requests.get(
f"http://localhost/api/v1/chatbot/{original_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)

original = get_response.json()

# Create new chatbot with same config
create_response = requests.post(
"http://localhost/api/v1/chatbot/create",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"name": f"{original['name']} - Copy",
"model": original["model"],
"system_prompt": original["system_prompt"],
"use_rag": original.get("use_rag", False),
"rag_collection": original.get("rag_collection"),
"temperature": original["temperature"]
}
)

new_chatbot = create_response.json()
print(f"Created copy: {new_chatbot['id']}")

Batch Operations

Manage multiple chatbots efficiently.

List and Filter

response = requests.get(
"http://localhost/api/v1/chatbot/list",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={
"model": "gpt-3.5-turbo", # Filter by model
"use_rag": True # Only chatbots with RAG enabled
}
)

rag_chatbots = response.json()["chatbots"]
print(f"Found {len(rag_chatbots)} RAG-enabled chatbots")

Update Multiple

import requests

chatbot_ids = ["chatbot-1", "chatbot-2", "chatbot-3"]

for chatbot_id in chatbot_ids:
response = requests.put(
f"http://localhost/api/v1/chatbot/{chatbot_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"temperature": 0.4, # Update all to be more focused
"memory_length": 15
}
)
print(f"Updated {chatbot_id}: {response.status_code}")

Monitoring

Track chatbot performance and usage.

Check Usage

chatbot_id = "your-chatbot-id"

response = requests.get(
f"http://localhost/api/v1/chatbot/{chatbot_id}/stats",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)

stats = response.json()
print(f"Total Messages: {stats['total_messages']}")
print(f"Total Tokens: {stats['total_tokens']}")
print(f"RAG Queries: {stats['rag_queries']}")
print(f"Average Response Time: {stats['avg_response_time']}ms")

Check Performance

response = requests.get(
"http://localhost/api/v1/analytics/chatbot-performance",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={
"chatbot_id": chatbot_id,
"period": "7d"
}
)

performance = response.json()
print(f"Success Rate: {performance['success_rate']:.2%}")
print(f"Average Response: {performance['avg_response_time']}ms")
print(f"RAG Hit Rate: {performance['rag_hit_rate']:.2%}")

Best Practices

Organization

  1. Use Descriptive Names - Make chatbots easy to identify
  2. Version Your Chatbots - Include version in names (e.g., "Support Bot v2")
  3. Document Changes - Keep track of configuration changes
  4. Test Changes - Test chatbots after major updates
  5. Monitor Performance - Check usage metrics regularly

Lifecycle Management

StageAction
DevelopmentCreate and test extensively
StagingDeploy to test environment
ProductionMonitor and optimize
DeprecationMark as deprecated, plan migration

Security

  1. Use Separate API Keys - Different keys for different chatbots
  2. Set Appropriate Permissions - Limit access per chatbot
  3. Regular Review - Review and clean up unused chatbots
  4. Audit Usage - Monitor which chatbots are used most

Troubleshooting

Chatbot Not Responding

Problem: Chatbot returns errors or no response

Check:

  • Chatbot ID is correct
  • Chatbot is enabled
  • API key has chatbot permissions
  • Model is available

RAG Not Working

Problem: Chatbot doesn't use RAG documents

Check:

  • use_rag is true in configuration
  • RAG collection exists
  • Documents are uploaded to collection
  • Collection name matches configuration

Update Failing

Problem: Update request returns error

Check:

  • You have permission to update the chatbot
  • JSON payload is valid
  • All required fields are included

Next Steps