Ex-Human chatbot API
The chatbot API from Ex-Human — 3 operation(s) for chatbot.
The chatbot API from Ex-Human — 3 operation(s) for chatbot.
openapi: 3.1.0
info:
title: Ex-Human animations chatbot API
description: '# Ex-Human
Ex-Human is a chatbot that can talk to you like a human.
Currently we host several services here:
- Chatbot (for B2B clients)
- Chat images manager (image generation for chats)
- Admin service (adding and deactivating B2B clients, checking stats)
- Animations (lipsync, idle animation)
- Moderation (get various safety labels)
'
version: 0.1.0
servers:
- url: https://api.exh.ai
description: Production environment
- url: http://localhost:7777
description: Local environment
tags:
- name: chatbot
paths:
/chatbot/v3/response:
post:
tags:
- chatbot
summary: Get Multimodal Chat Response
description: 'Multimodal chat response endpoint.
It can be used to support engaging conversations with both text and image responses.
For usage examples, see: https://docs.exh.ai/recipes/multimodal-chat'
operationId: get_response_chatbot_v3_response_post
security:
- HTTPBearer: []
parameters:
- name: X-Request-Id
in: header
required: false
schema:
type: string
default: 16f19b16-b0c1-4c3c-8f14-a0f283dc93b9
title: X-Request-Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChatbotV3PayloadSchema'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ChatbotV3ResponseSchema'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/chatbot/v2/get_smart_replies:
post:
tags:
- chatbot
summary: Get Smart Replies
description: "Smart reply endpoint.\n\nUse it to get possible user responses for the current dialog context. They can be served as a\n help for the user on how to continue the conversation."
operationId: get_smart_replies_chatbot_v2_get_smart_replies_post
security:
- HTTPBearer: []
parameters:
- name: X-Request-Id
in: header
required: false
schema:
type: string
default: 682decba-2b2c-4175-a1cc-d8b82623e60f
title: X-Request-Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SmartReplyPayloadSchema'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SmartReplyResponseSchema'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/chatbot/v3/memory:
delete:
tags:
- chatbot
summary: Clear Long-Term Memory
operationId: delete_memory_chatbot_v3_memory_delete
security:
- HTTPBearer: []
parameters:
- name: bot_id
in: query
required: true
schema:
type: string
title: Bot Id
example: AD17F119-FC27-6400-566C
- name: user_id
in: query
required: true
schema:
type: string
title: User Id
example: PDS31104-FC27-6400-9DG2
- name: X-Request-Id
in: header
required: false
schema:
type: string
default: 0d60bfb7-bda7-4cdb-8a43-572ab48e016b
title: X-Request-Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
CharacterProfile:
properties:
id:
title: Id
description: Unique identifier. Provide user's id and bot's id to enable Long-Term Memory - recall of conversation beyond 30 messages
examples:
- '1234567890'
type: string
maxLength: 256
minLength: 1
default: null
nullable: true
name:
type: string
maxLength: 100
minLength: 1
title: Name
examples:
- Sam
description:
title: Description
description: Detailed description of your character. It can include traits, history, mannerisms, backstory, things they want to talk about, etc.
examples:
- I'm a big fan of AI.
type: string
maxLength: 12000
minLength: 1
default: null
nullable: true
appearance:
title: Appearance
description: 'Description of how your character looks like. Some ideas to specify in this field: gender,ethnicity, hair color, body type (slim, athletic, curvy, etc.), age, tattoos, and eye color. This field will affect the generated image and image prompt the most.'
examples:
- 39 yo, white, short black hair, slim
type: string
maxLength: 2000
minLength: 1
default: null
nullable: true
pronoun:
examples:
- he/him
$ref: '#/components/schemas/Pronoun'
default: null
nullable: true
example_messages:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Example Messages
description: Example messages to help the model understand the character's personality and style. The model will use these examples to generate a response that is more likely to be similar to the character's style.
examples:
- - Hey, what's up?
type: object
required:
- name
title: Character Profile
ImageGenerationModel:
type: string
enum:
- persona-2
title: ImageGenerationModel
description: Model to use for image generation.
Pronoun:
type: string
enum:
- he/him
- she/her
- they/them
title: Pronoun
ContentItem:
properties:
name:
type: string
maxLength: 200
minLength: 1
title: Name
description:
type: string
maxLength: 500
minLength: 1
title: Description
price:
type: number
exclusiveMinimum: 0
title: Price
link:
type: string
maxLength: 2000
minLength: 1
title: Link
type: object
required:
- name
- description
- price
- link
title: ContentItem
ImageStyle:
type: string
enum:
- realistic
- anime
title: ImageStyle
description: 'Artistic style for generating the gallery image.
If not specified, the style is automatically detected based on the identity image.'
ChatbotV3ResponseSchema:
properties:
response:
type: string
title: Response
image_response:
anyOf:
- $ref: '#/components/schemas/ImageV3ResponseSchema'
- type: 'null'
type: object
required:
- response
title: ChatbotV3ResponseSchema
ChatbotV3PayloadSchema:
properties:
context:
items:
$ref: '#/components/schemas/MessageWithImagePrompt'
type: array
maxItems: 40
minItems: 0
title: Context
description: The context of the conversation. Set to empty list to get bot's greeting. Maximum 40 messages.
examples:
- - image_prompt: Man in the mountains
message: Hi, how are you?
turn: bot
- message: I'm fine, thanks. How is it going with you?
turn: user
bot_profile:
$ref: '#/components/schemas/CharacterProfile'
user_profile:
default: null
$ref: '#/components/schemas/UserProfile'
nullable: true
chat_settings:
$ref: '#/components/schemas/ChatV3Settings'
description: Chat settings for the chatbot
default:
model_name: roleplay
allow_nsfw: true
enable_memory: true
image_settings:
$ref: '#/components/schemas/ChatV3ImageSettings'
description: Image settings for the chatbot
default:
model_name: persona-2
allow_nsfw: true
usage_mode: 'off'
return_bs64: true
catalog:
anyOf:
- items:
$ref: '#/components/schemas/ContentItem'
type: array
maxItems: 100
minItems: 1
- type: 'null'
title: Catalog
description: Content catalog for selling. When provided, the bot will be able to recommend items from this catalog during conversation. Each item should have a name, description, price, and link.
type: object
required:
- bot_profile
title: ChatbotV3PayloadSchema
MessageWithImagePrompt:
properties:
turn:
type: string
title: Turn
description: The turn of the message (`bot` or `user`)
examples:
- bot
message:
type: string
maxLength: 2000
minLength: 1
title: Message
image_prompt:
title: Image Prompt
description: The prompt for the image that was generated on this turn.
type: string
default: null
nullable: true
additionalProperties: false
type: object
required:
- turn
- message
title: MessageWithImagePrompt
Message:
properties:
turn:
type: string
title: Turn
description: The turn of the message (`bot` or `user`)
examples:
- bot
message:
type: string
maxLength: 2000
minLength: 1
title: Message
additionalProperties: false
type: object
required:
- turn
- message
title: Message
ChatV3Settings:
properties:
model_name:
$ref: '#/components/schemas/ModelNameV3'
description: 'The text model to use:
- `roleplay` - our latest most powerful and engaging model for different chat scenarios.
- `realistic_chat` - a model that chats more like a human, without roleplay. '
default: roleplay
allow_nsfw:
type: boolean
title: Allow Nsfw
description: For enabling NSFW bot responses support, set the flag to 'True'; otherwise, set it to 'False'.
default: true
tasks:
title: Tasks
description: Modifications for LLM instruction. Maximum 5 tasks. Total length of all tasks must not exceed 2500 characters.
examples:
- - You must never mention anything related to cryptocurrency.
- Use emojis in responses.
- Suggest user to buy subscription, if it fits in the context.
- Say user that photo's will not be provided.
items:
type: string
minLength: 1
type: array
maxItems: 5
minItems: 0
default: null
nullable: true
enable_memory:
type: boolean
title: Enable Memory
description: A flag that determines whether the long-term memory feature is used. If it's set to True or not provided, and both bot_profile.id and user_profile.id are also provided, the service will store and utilize memory of the conversation. If it's set to False, no memory of past events beyond the current context will be available. Memory starts accumulating after 20 messages in a chat.
default: true
type: object
title: Chat Settings
SmartReplyResponseSchema:
properties:
smart_replies:
items:
type: string
minLength: 1
type: array
maxItems: 10
minItems: 1
title: Smart Replies
description: The smart replies of the chatbot
examples:
- - Super! I'm fine too.
- Great!
type: object
required:
- smart_replies
title: SmartReplyResponseSchema
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ImageV3ResponseSchema:
properties:
prompt:
type: string
title: Prompt
bs64:
anyOf:
- type: string
- type: 'null'
title: Bs64
type: object
required:
- prompt
title: ImageV3ResponseSchema
SmartReplyPayloadSchema:
properties:
context:
title: Context
description: The context of the conversation
examples:
- - message: Hi, how are you?
turn: bot
- message: I'm fine, thanks. How is it going with you?
turn: user
items:
$ref: '#/components/schemas/Message'
type: array
maxItems: 30
minItems: 1
default: null
nullable: true
user_id:
title: User Id
description: Unique user identifier. Used for AB tests.
examples:
- AD17F119-FC27-6400-566C
type: string
maxLength: 500
minLength: 1
default: null
nullable: true
candidates_num:
type: integer
maximum: 10
minimum: 1
title: Candidates Num
description: The number of smart replies to return
default: 2
examples:
- 2
type: object
title: SmartReplyPayloadSchema
ChatV3ImageSettings:
properties:
identity_image_url:
title: Identity Image Url
description: Url to the image with bot's identity picture.
examples:
- https://exh-data.s3.us-west-2.amazonaws.com/cv/default_bots_metadata/v3/Elon%20Musk/avatar_256.jpg
type: string
minLength: 1
format: uri
default: null
nullable: true
model_name:
$ref: '#/components/schemas/ImageGenerationModel'
description: 'Image generation model to use:
- `persona-2` - next-gen persona model with improved identity preservation and higher fidelity output'
default: persona-2
style:
description: Artistic style for generating the gallery image.If not specified, the style is automatically detected based on the identity image.
$ref: '#/components/schemas/ImageStyle'
default: null
nullable: true
allow_nsfw:
type: boolean
title: Allow Nsfw
description: For enabling NSFW image support, set the flag to 'True'; otherwise, set it to 'False'.
default: true
usage_mode:
$ref: '#/components/schemas/ImageUsageMode'
default: 'off'
return_bs64:
type: boolean
title: Return Bs64
description: If return_bs64 is set to True, a base64-endcoded generated image and the image prompt will be provided. If set to False, only the text prompt describing the image will be returned.
default: true
type: object
title: Image Settings
ImageUsageMode:
type: string
enum:
- force
- on_user_request
- 'off'
title: ImageUsageMode
description: 'The image usage mode. Determines how images are handled in the chat.
If set to ''off'', images will not be used.
If set to ''on_user_request'', images will be provided only when requested by the user.
If set to ''force'', images will always be provided.'
UserProfile:
properties:
id:
title: Id
description: Unique identifier. Provide user's id and bot's id to enable Long-Term Memory
examples:
- '1234567890'
type: string
maxLength: 256
minLength: 1
default: null
nullable: true
name:
title: Name
examples:
- Sam
type: string
maxLength: 100
minLength: 1
default: null
nullable: true
description:
title: Description
description: Detailed description of your character. It can include traits, history, mannerisms, backstory, things they want to talk about, etc.
type: string
maxLength: 8000
minLength: 1
default: null
nullable: true
appearance:
title: Appearance
description: 'Description of how your character looks like. Some ideas to specify in this field: gender,ethnicity, hair color, body type (slim, athletic, curvy, etc.), age, tattoos, and eye color.'
type: string
maxLength: 2000
minLength: 1
default: null
nullable: true
pronoun:
examples:
- he/him
$ref: '#/components/schemas/Pronoun'
default: null
nullable: true
type: object
title: User Profile
ModelNameV3:
type: string
enum:
- roleplay
- realistic_chat
title: ModelNameV3
securitySchemes:
HTTPBearer:
type: http
scheme: bearer