Create an AI profile - Fluid Topics - Latest

Fluid Topics API Reference Guide

Category
Reference Guides
Audience
public
Version
Latest

This web service allows users with the ADMIN role to create an AI profile.

It is necessary to provide an Ft-Calling-App value when using Fluid Topics web services. See Fluid Topics calling app.

For more information about AI profiles, see AI.

Method Endpoint
POST
/api/admin/ai/profiles

Request example for API key authentication

{
  "profileType": "CHATBOT",
  "name": "My Chatbot",
  "profileId": "my_chatbot",
  "modelEndpoint": {
    "provider": "openai",
    "providerLabel": "OpenAI",
    "host": "",
    "modelOrDeploymentId": "gpt-5"
  },
  "customPrompt": "Insert your prompt here",
  "numSemanticSearchResults": 5,
  "authenticationMethod": {
    "type": "api_key",
    "label": "API key",
    "authenticationParameters": [
      {
        "label": "API key",
        "key": "api_key",
        "isSecret": true,
        "isOptional": false,
        "value": "XXX"
      }
    ]
  }
}

Request example for username/password authentication

{
  "profileType": "TRANSLATION",
  "name": "Phrase profile",
  "profileId": "phrase_profile",
  "modelEndpoint": {
    "provider": "phrase",
    "providerLabel": "Phrase",
    "modelOrDeploymentId": ""
  },
  "customPrompt": "",
  "authenticationMethod": {
    "type": "username_password",
    "label": "Username and password",
    "authenticationParameters": [
      {
        "label": "Username",
        "key": "username",
        "isSecret": false,
        "isOptional": false,
        "value": "Username"
      },
      {
        "label": "Password",
        "key": "password",
        "isSecret": true,
        "isOptional": false,
        "value": "Password"
      }
    ]
  }
}
Field Type Required? Description
name String Yes The name of the profile.
profileId String Yes The profile ID of the profile. It can only include alphanumeric characters, hyphens (-), and underscores (_).
profileType String Yes The type of the profile. Can be COMPLETION, CHATBOT, or TRANSLATION.
modelEndpoint Object Yes An object containing the model details.
provider String Yes
  • For CHATBOT and COMPLETION profiles, can only be one of the following values: anthropic, azureopenai, fluidtopics, googleai, myllm, openai.
  • For TRANSLATION profiles, can be deepl_pro, intento, or phrase.
providerLabel String No Enter the name of the provider:
  • anthropic: Anthropic
  • azureopenai: Azure OpenAI
  • deepl_pro: DeepL Pro
  • fluidtopics: Fluid Topics
  • googleai: Google AI
  • intento: Intento
  • myllm: MyLLM
  • openai: OpenAI
  • phrase: Phrase
host String Yes (only with an azureopenai or myllm provider) The resource name. For example: my-resource.openai.azure.com.
modelOrDeploymentId String Yes The LLM model or translation engine.
  • It is possible to enter any value, as long as it matches a valid model from the selected LLM provider. A list of models and engines is available in the AI menu. It is not exhaustive.
  • Enter an empty value for DeepL Pro.
customPrompt String Yes The LLM prompt for COMPLETION and CHATBOT type profiles. The prompt can contain variables. Place variables in single curly brackets. Users can set the values of these variables when using the Query a large language model (LLM) web service. Leave empty for machine translation (MT) providers.
numSemanticSearchResults Number No Defines the number of semantic search results provided to the large language model (LLM) when calling the Retrieval-augmented generation web service. The value can range from 1 to 20. By default, the value is 5. Users can only set this field when profileType has a value of CHATBOT.
A higher number of semantic search results can increase the cost of requests, and decrease the speed and quality of answers. For most use cases, use the default value of 5.
The Chatbot component calls the Retrieval-augmented generation web service.
numSemanticSearchResultsAfterRerank Number No The number of semantic search results provided to the large language model (LLM) after reranking. The value must be smaller or equal to the value of the numSemanticSearchResults field.
ragPrompt String No A Retrieval-augmented generation (RAG) prompt. Asks the user question to the LLM. It must have the {relevant_documents} and {chatbot_instructions} variables. {relevant_documents} dynamically contains the relevant documents (gotten through the Clustered semantic search web service), and {chatbot_instructions} is the customPrompt value.
ragHistoryPrompt String No A Retrieval-augmented generation (RAG) history prompt. Asks the LLM to transform the user question and the conversation history into a standalone question asked to the LLM.
authenticationMethod Object Yes Contain the details for the authentication to the provider.
type String Yes The type of authentication. Possible values are username_password or api_key.
label String Yes The label for the type of authentication.
authenticationParameters Object Yes The list of parameters that are used to connect to the provider.
label String Yes The label for the authentication parameter.
key String Yes The key for the authentication parameter.
value String Yes The value for the authentication parameter.
isSecret Boolean Yes Whether the parameter is secret or not.
isOptional Boolean Yes Whether the parameter is optional or not.
  • profileId and name values must be different from existing AI profiles.
  • In case of username/password authentication, the authenticationParameters object requires a list of string values for the username and one for the password, as shown in the example.

See Chatbot architecture for a better understanding of the use of Chatbot prompts and reranking.

Response body

{
  "id": "7ed9433f-af15-40df-8f32-15beddce37df",
  "name": "Phrase profile"
}
Field Type Description
id String The unique identifier for the profile.
name String The name of the profile as set in the request.
Return code Description
200 OK The profile was created successfully.
401 UNAUTHORIZED The authorization header is absent or invalid.

For a comprehensive list of all possible return codes, see Return codes.