FriendliAI Serverless.ToolAssistedChat API

The Serverless.ToolAssistedChat API from FriendliAI — 2 operation(s) for serverless.toolassistedchat.

Operations 2

POST /serverless/tools/v1/chat/completions Tool assisted chat completions #
POST /serverless/tools/v1/chat/completions#stream Stream tool assisted chat completions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/friendliai-serverless-toolassistedchat-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

friendliai-serverless-toolassistedchat-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Friendli Suite API Reference Container.Audio Serverless.Tool Assisted Chat API
  description: This is an OpenAPI reference of Friendli Suite API.
  termsOfService: https://friendli.ai/terms-of-service
  contact:
    name: FriendliAI Support Team
    email: support@friendli.ai
  version: 0.1.0
servers:
- url: https://api.friendli.ai
tags:
- name: Serverless.ToolAssistedChat
paths:
  /serverless/tools/v1/chat/completions:
    post:
      tags:
      - Serverless.ToolAssistedChat
      summary: Tool assisted chat completions
      description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
      operationId: serverlessToolAssistedChatComplete
      security:
      - token: []
      parameters:
      - name: X-Friendli-Team
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: ID of team to run requests as (optional parameter).
          title: X-Friendli-Team
        description: ID of team to run requests as (optional parameter).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServerlessToolAssistedChatCompletionBody'
      responses:
        '200':
          description: Successfully generated a tool assisted chat response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerlessToolAssistedChatCompleteSuccess'
              examples:
                Example:
                  value:
                    id: chatcmpl-4b71d12c86d94e719c7e3984a7bb7941
                    model: zai-org/GLM-5.2
                    object: chat.completion
                    choices:
                    - index: 0
                      message:
                        role: assistant
                        content: The result is 9.
                      finish_reason: stop
                    usage:
                      prompt_tokens: 9
                      completion_tokens: 11
                      total_tokens: 20
                    created: 1735722153
        '422':
          description: Unprocessable Entity
      x-speakeasy-name-override: complete
      x-speakeasy-ignore: true
      x-mint:
        metadata:
          title: Model APIs Tool Assisted Chat Completions
          sidebarTitle: Tool Assisted Chat Completions
          og:title: Model APIs Tool Assisted Chat Completions
          description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
          og:description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
          tag: Beta
        href: /openapi/model-apis/tool-assisted-chat-completions
        content: 'Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.


          See available models at [this pricing table](/guides/model-apis/pricing#billing-methods).


          To request successfully, it is mandatory to enter a **Personal API Key** (e.g. flp_XXX) value in the **Bearer Token** field.

          Refer to the [authentication section](/openapi/introduction#authentication) on our introduction page to learn how to acquire this variable and [visit here](https://friendli.ai/suite/~/setting/keys) to generate your API Key.


          When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`.

          You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/model-apis/tool-assisted-chat-completions-chunk-object).


          <Tip>You can explore examples on the [Friendli Model APIs](https://friendli.ai/get-started/model-apis) playground and adjust settings with just a few clicks.</Tip>


          <Warning>Tool assisted chat completions does not fully support parallel tool calls now.</Warning>


          <Info>

          This API is currently in **Beta**.

          While we strive to provide a stable and reliable experience, this feature is still under active development.

          As a result, you may encounter unexpected behavior or limitations.

          We encourage you to provide feedback to help us improve the feature before its official release.


          - [Feature request & feedback](mailto:support@friendli.ai)

          - [Contact support](mailto:support@friendli.ai)


          </Info>'
  /serverless/tools/v1/chat/completions#stream:
    post:
      tags:
      - Serverless.ToolAssistedChat
      summary: Stream tool assisted chat completions
      description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
      operationId: serverlessToolAssistedChatStream
      security:
      - token: []
      parameters:
      - name: X-Friendli-Team
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: ID of team to run requests as (optional parameter).
          title: X-Friendli-Team
        description: ID of team to run requests as (optional parameter).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServerlessToolAssistedChatCompletionStreamBody'
      responses:
        '200':
          description: Successfully generated a tool assisted chat response.
          content:
            text/event-stream:
              x-speakeasy-sse-sentinel: '[DONE]'
              examples:
                Example:
                  value: 'event: tool_status

                    data: {"tool_call_id":"call_3QrfStXSU6fGdOGPcETocIAq","name":"math:calculator","status":"STARTED","parameters":[{"name":"expression","value":"150 * 1.60934"}],"result":null,"files":null,"message":null,"error":null,"usage":null,"timestamp":1726277121}


                    event: tool_status

                    data: {"tool_call_id":"call_3QrfStXSU6fGdOGPcETocIAq","name":"math:calculator","status":"ENDED","parameters":[{"name":"expression","value":"150 * 1.60934"}],"result":""{\"result\": \"150 * 1.60934=241.401000000000\"}"","files":null,"message":null,"error":null,"usage":null,"timestamp":1726277121}


                    data: {"id":"chatcmpl-4b71d12c86d94e719c7e3984a7bb7941","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"To"},"finish_reason":null,"logprobs":null}],"created":1726277121}


                    ...


                    data: {"id":"chatcmpl-4b71d12c86d94e719c7e3984a7bb7941","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"."},"finish_reason":null,"logprobs":null}],"created":1726277121}


                    data: {"id":"chatcmpl-4b71d12c86d94e719c7e3984a7bb7941","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop","logprobs":null}],"created":1726277121}


                    data: [DONE]

                    '
              schema:
                $ref: '#/components/schemas/ServerlessToolAssistedChatCompletionStreamSuccess'
        '422':
          description: Unprocessable Entity
      x-speakeasy-name-override: stream
      x-speakeasy-ignore: true
      x-mint:
        metadata:
          title: Model APIs Tool Assisted Stream Chat Completions
          sidebarTitle: Stream Tool Assisted Chat Completions
          og:title: Model APIs Tool Assisted Stream Chat Completions
          description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
          og:description: Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.
          tag: Beta
        content: 'Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs. Additionally, the model can utilize built-in tools for tool calls, enhancing its capability to provide more comprehensive and actionable responses.


          See available models at [this pricing table](/guides/model-apis/pricing#billing-methods).


          To request successfully, it is mandatory to enter a **Personal API Key** (e.g. flp_XXX) value in the **Bearer Token** field.

          Refer to the [authentication section](/openapi/introduction#authentication) on our introduction page to learn how to acquire this variable and [visit here](https://friendli.ai/suite/~/setting/keys) to generate your API Key.


          When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`.

          You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/model-apis/tool-assisted-chat-completions-chunk-object).


          <Tip>You can explore examples on the [Friendli Model APIs](https://friendli.ai/get-started/model-apis) playground and adjust settings with just a few clicks.</Tip>


          <Warning>Tool assisted chat completions does not fully support parallel tool calls now.</Warning>


          <Info>

          This API is currently in **Beta**.

          While we strive to provide a stable and reliable experience, this feature is still under active development.

          As a result, you may encounter unexpected behavior or limitations.

          We encourage you to provide feedback to help us improve the feature before its official release.


          - [Feature request & feedback](mailto:support@friendli.ai)

          - [Contact support](mailto:support@friendli.ai)


          </Info>'
components:
  schemas:
    StreamedChatChoice:
      properties:
        index:
          type: integer
          title: Index
          description: The index of the choice in the list of generated choices.
          examples:
          - 0
        logprobs:
          anyOf:
          - $ref: '#/components/schemas/ChatLogprobs'
          - type: 'null'
        delta:
          $ref: '#/components/schemas/StreamedChatChoiceDelta'
        finish_reason:
          anyOf:
          - type: string
            enum:
            - stop
            - length
            - tool_calls
            - 'null'
          - type: 'null'
          title: Finish Reason
          description: 'Termination condition of the generation. `stop` means the API returned the full chat completions generated by the model without running into any limits.

            `length` means the generation exceeded `max_tokens` or the conversation exceeded the max context length.

            `tool_calls` means the API has generated tool calls.'
      type: object
      required:
      - index
      - delta
      title: StreamedChatChoice
    ServerlessToolAssistedChatCompletionBody:
      properties:
        model:
          type: string
          title: Model
          description: Code of the model to use. See [available model list](https://friendli.ai/docs/guides/model-apis/pricing#billing-methods).
          examples:
          - zai-org/GLM-5.2
        messages:
          items:
            $ref: '#/components/schemas/Message'
          type: array
          title: Messages
          description: A list of messages comprising the conversation so far.
          examples:
          - - content: You are a helpful assistant.
              role: system
            - content: Hello!
              role: user
        chat_template_kwargs:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Chat Template Kwargs
          description: Additional keyword arguments supplied to the template renderer. These parameters will be available for use within the chat template.
        eos_token:
          anyOf:
          - items:
              type: integer
            type: array
          - type: 'null'
          title: Eos Token
          description: A list of endpoint sentence tokens.
        frequency_penalty:
          anyOf:
          - type: number
          - type: 'null'
          title: Frequency Penalty
          description: Number between -2.0 and 2.0. Positive values penalizes tokens that have been sampled, taking into account their frequency in the preceding text. This penalization diminishes the model's tendency to reproduce identical lines verbatim.
        logit_bias:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Logit Bias
          description: Accepts a JSON object that maps tokens to an associated bias value. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model.
        logprobs:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Logprobs
          description: Whether to return log probabilities of the output tokens or not.
        max_tokens:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Tokens
          description: The maximum number of tokens to generate. For decoder-only models like GPT, the length of your input tokens plus `max_tokens` should not exceed the model's maximum length (e.g., 2048 for OpenAI GPT-3). For encoder-decoder models like T5 or BlenderBot, `max_tokens` should not exceed the model's maximum output length. This is similar to Hugging Face's [`max_new_tokens`](https://huggingface.co/docs/transformers/v4.26.0/en/main_classes/text_generation#transformers.GenerationConfig.max_new_tokens) argument.
        min_p:
          anyOf:
          - type: number
          - type: 'null'
          title: Min P
          description: A scaling factor used to determine the minimum token probability threshold. This threshold is calculated as `min_p` multiplied by the probability of the most likely token. Tokens with probabilities below this scaled threshold are excluded from sampling. Values range from 0.0 (inclusive) to 1.0 (inclusive). Higher values result in stricter filtering, while lower values allow for greater diversity. The default value of 0.0 disables filtering, allowing all tokens to be considered for sampling.
        n:
          anyOf:
          - type: integer
          - type: 'null'
          title: N
          description: The number of independently generated results for the prompt. Defaults to 1. This is similar to Hugging Face's [`num_return_sequences`](https://huggingface.co/docs/transformers/v4.26.0/en/main_classes/text_generation#transformers.GenerationConfig.num_return_sequences) argument.
        parallel_tool_calls:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Parallel Tool Calls
          description: Whether to enable parallel function calling.
        presence_penalty:
          anyOf:
          - type: number
          - type: 'null'
          title: Presence Penalty
          description: Number between -2.0 and 2.0. Positive values penalizes tokens that have been sampled at least once in the existing text.
        repetition_penalty:
          anyOf:
          - type: number
          - type: 'null'
          title: Repetition Penalty
          description: Penalizes tokens that have already appeared in the generated result (plus the input tokens for decoder-only models). Should be positive value (1.0 means no penalty). See [keskar et al., 2019](https://arxiv.org/abs/1909.05858) for more details. This is similar to Hugging Face's [`repetition_penalty`](https://huggingface.co/docs/transformers/v4.26.0/en/main_classes/text_generation#transformers.generationconfig.repetition_penalty) argument.
        reasoning_effort:
          anyOf:
          - type: string
            enum:
            - minimal
            - low
            - medium
            - high
            - xhigh
            - max
            - ultracode
          - type: 'null'
          title: Reasoning Effort
          description: Sets how much reasoning the model does before answering. Higher values give more thorough responses but take longer. This affects reasoning models only, and the available options depend on the model.
        reasoning_budget:
          anyOf:
          - type: integer
          - type: 'null'
          title: Reasoning Budget
          description: Specifies a positive integer that defines a limit on the number of tokens used for internal reasoning tokens. This parameter is only effective for reasoning models.
        seed:
          anyOf:
          - items:
              type: integer
            type: array
          - type: integer
          - type: 'null'
          title: Seed
          description: Seed to control random procedure. If nothing is given, random seed is used for sampling, and return the seed along with the generated result. When using the `n` argument, you can pass a list of seed values to control all of the independent generations.
        stop:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Stop
          description: When one of the stop phrases appears in the generation result, the API will stop generation. The stop phrases are excluded from the result. Defaults to empty list.
        stream:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Stream
          description: Whether to stream the generation result. When set to `true`, each token is sent as [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format) once generated.
          default: false
        stream_options:
          anyOf:
          - $ref: '#/components/schemas/StreamOptions'
          - type: 'null'
          description: 'Options related to stream.

            It can only be used when `stream: true`.'
        parse_reasoning:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Parse Reasoning
          description: 'Parses model reasoning into `reasoning_content` while keeping the answer in `content`. Default value may vary between endpoints.


            For more detailed information, please refer [here](https://friendli.ai/docs/guides/reasoning#reasoning-parsing-with-friendli).'
        include_reasoning:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Include Reasoning
          description: 'When `parse_reasoning=true`, include parsed reasoning (`reasoning_content`). Defaults to true.


            For more detailed information, please refer [here](https://friendli.ai/docs/guides/reasoning#reasoning-parsing-with-friendli).'
        temperature:
          anyOf:
          - type: number
          - type: 'null'
          title: Temperature
          description: Sampling temperature. Smaller temperature makes the generation result closer to greedy, argmax (i.e., `top_k = 1`) sampling. Defaults to 1.0. This is similar to Hugging Face's [`temperature`](https://huggingface.co/docs/transformers/v4.26.0/en/main_classes/text_generation#transformers.generationconfig.temperature) argument.
        tool_choice:
          anyOf:
          - $ref: '#/components/schemas/ChatCompleteBodyToolChoice'
          - type: string
          title: Tool Choice
          description: 'Determines the tool calling behavior of the model.

            When set to `none`, the model will bypass tool execution and generate a response directly.

            In `auto` mode (the default), the model dynamically decides whether to call a tool or respond with a message.

            Alternatively, setting `required` ensures that the model invokes at least one tool before responding to the user.

            You can also specify a particular tool by `{"type": "function", "function": {"name": "my_function"}}`.

            '
        top_k:
          anyOf:
          - type: integer
          - type: 'null'
          title: Top K
          description: Limits sampling to the top k tokens with the highest probabilities. Values range from 0 (no filtering) to the model's vocabulary size (inclusive). The default value of 0 applies no filtering, allowing all tokens.
        top_logprobs:
          anyOf:
          - type: integer
          - type: 'null'
          title: Top Logprobs
          description: The number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to true if this parameter is used.
        top_p:
          anyOf:
          - type: number
          - type: 'null'
          title: Top P
          description: Keeps only the smallest set of tokens whose cumulative probabilities reach `top_p` or higher. Values range from 0.0 (exclusive) to 1.0 (inclusive). The default value of 1.0 includes all tokens, allowing maximum diversity.
        xtc_threshold:
          anyOf:
          - type: number
          - type: 'null'
          title: Xtc Threshold
          description: A probability threshold used to identify “top choice” tokens for exclusion in XTC (Exclude Top Choices) sampling. Tokens with probabilities at or above this threshold are considered viable candidates, and all but the least likely viable token are excluded from sampling. This option reduces the dominance of highly probable tokens while preserving some diversity by keeping the least confident “top choice.” Values range from 0.0 (inclusive) to 1.0 (inclusive). Higher values make the filtering more selective by requiring higher probabilities to trigger exclusion, while lower values apply filtering more broadly. The default value of 0.0 disables XTC filtering entirely.
        xtc_probability:
          anyOf:
          - type: number
          - type: 'null'
          title: Xtc Probability
          description: The probability that XTC (Exclude Top Choices) filtering will be applied for each sampling decision. When XTC is triggered, high-probability tokens above the `xtc_threshold` are excluded except for the least likely viable token. This stochastic activation allows for a balance between standard sampling and creativity-boosting exclusion filtering. Values range from 0.0 (inclusive) to 1.0 (inclusive), where 0.0 means XTC is never applied, 1.0 means XTC is always applied when viable tokens exist, and intermediate values provide probabilistic activation. The default value of 0.0 disables XTC filtering.
        tools:
          anyOf:
          - items:
              $ref: '#/components/schemas/ToolAssistedChatTool'
            type: array
          - type: 'null'
          title: Tools
          description: 'A list of tools the model may call.

            A maximum of 128 functions is supported.

            Use this to provide a list of functions the model may generate JSON inputs for.

            For more detailed information about each tool, please refer [here](https://friendli.ai/docs/guides/model-apis/tool-assisted-api#built-in-tools).'
        resume_generation:
          type: boolean
          title: Resume Generation
          description: 'Enable to continue text generation even after an error occurs during a tool call.


            Note that enabling this option may use more tokens, as the system generates additional content to handle errors gracefully.

            However, if the system fails more than 8 times, the generation will stop regardless.


            ***Tip***

            This is useful in scenarios where you want to maintain text generation flow despite errors, such as when generating long-form content.

            The user will not be interrupted by tool call issues, ensuring a smoother experience.'
      type: object
      required:
      - model
      - messages
      title: ServerlessToolAssistedChatCompletionBody
      example:
        messages:
        - content: What is 3 + 6?
          role: user
        model: zai-org/GLM-5.2
        tools:
        - type: math:calculator
    ChatCompleteBodyToolChoice:
      properties:
        type:
          type: string
          const: function
          title: Type
          description: The type of the tool. Currently, only `function` is supported.
        function:
          $ref: '#/components/schemas/ChatCompleteBodyToolChoiceFunction'
      type: object
      required:
      - type
      - function
      title: ChatCompleteBodyToolChoice
    PromptTokensDetails:
      properties:
        cached_tokens:
          anyOf:
          - type: integer
          - type: 'null'
          title: Cached Tokens
          description: Cached tokens present in the prompt.
      type: object
      title: PromptTokensDetails
    FriendliBuiltInTool:
      properties:
        type:
          type: string
          enum:
          - math:calculator
          - math:statistics
          - math:calendar
          - web:search
          - web:url
          - code:python-interpreter
          title: Type
          description: The type of the built-in tool provided by Friendli.
      type: object
      required:
      - type
      title: FriendliBuiltInTool
    AssistantMessageToolCall:
      properties:
        id:
          type: string
          title: Id
          description: The ID of tool call.
        type:
          type: string
          const: function
          title: Type
          description: The type of tool call.
        function:
          $ref: '#/components/schemas/AssistantMessageToolCallFunction'
          description: The function specification
      type: object
      required:
      - id
      - type
      - function
      title: AssistantMessageToolCall
    FileBuiltInTool:
      properties:
        type:
          type: string
          const: file:text
          title: Type
          description: The type of the file parser tool. Only .txt and .pdf files are supported.
        files:
          items:
            type: string
          type: array
          title: Files
          description: A List of file IDs. For now, only one file is supported.
      type: object
      required:
      - type
      - files
      title: FileBuiltInTool
    AssistantMessage:
      properties:
        role:
          type: string
          const: assistant
          title: Role
          description: The role of the messages author.
        content:
          anyOf:
          - type: string
          - type: 'null'
          title: Content
          description: The content of assistant message. Required unless `tool_calls` is specified.
        reasoning_content:
          anyOf:
          - type: string
          - type: 'null'
          title: Reasoning Content
          description: The intermediate reasoning content of assistant message.
        reasoning:
          anyOf:
          - type: string
          - type: 'null'
          title: Reasoning
          description: The intermediate reasoning content of assistant message. This field is a compatible option for the 'reasoning_content' field.
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: The name for the participant to distinguish between participants with the same role.
        tool_calls:
          anyOf:
          - items:
              $ref: '#/components/schemas/AssistantMessageToolCall'
            type: array
          - type: 'null'
          title: Tool Calls
      type: object
      required:
      - role
      title: AssistantMessage
    ToolStatusFile:
      properties:
        name:
          type: string
          title: Name
          description: The name of the file generated by the tool's execution.
        url:
          type: string
          title: Url
          description: URL of the file generated by the tool's execution.
      type: object
      required:
      - name
      - url
      title: ToolStatusFile
    ToolStatusParameter:
      properties:
        name:
          type: string
          title: Name
          description: The name of the tool's function parameter.
        value:
          type: string
          title: Value
          description: The value of the tool's function parameter.
      type: object
      required:
      - name
      - value
      title: ToolStatusParameter
    StreamedToolAssistedChatToken:
      properties:
        event:
          type: string
          const: token
          title: Event
          description: The type of the event.
        data:
          $ref: '#/components/schemas/StreamedChatData'
      type: object
      required:
      - event
      - data
      title: StreamedToolAssistedChatToken
    ChatLogprobsContentTopLogprob:
      properties:
        token:
          type: string
          title: Token
          description: The token.
        logprob:
          type: number
          title: Logprob
          description: The log probability of this token.
        bytes:
          anyOf:
          - items:
              type: integer
            type: array
          - type: 'null'
          title: Bytes
          description: A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token.
      type: object
      required:
      - token
      - logprob
      title: ChatLogprobsContentTopLogprob
    ToolAssistedChatTool:
      oneOf:
      - $ref: '#/components/schemas/Tool'
        title: Function
      - $ref: '#/components/schemas/FriendliBuiltInTool'
        title: Friendli
      - $ref: '#/components/schemas/IntegratedBuiltInTool'
        title: Integrated
      - $ref: '#/components/schemas/FileBuiltInTool'
        title: File
      discriminator:
        propertyName: type
        mapping:
          code:python-interpreter: '#/components/schemas/FriendliBuiltInTool'
          file:text: '#/components/schemas/FileBuiltInTool'
          function: '#/components/schemas/Tool'
          linkup:search: '#/components/schemas/IntegratedBuiltInTool'
          math:calculator: '#/components/schemas/FriendliBuiltInTool'
          math:calendar: '#/components/schemas/FriendliBuiltInTool'
          math:statistics: '#/components/schemas/FriendliBuiltInTool'
          web:search: '#/components/schemas/FriendliBuiltInTool'
          web:url: '#/components/schemas/FriendliBuiltInTool'
    FunctionResult:
      properties:
        arguments:
          type: string
          title: Arguments
          description: 'The arguments for calling the function, generated by the model in JSON format

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/friendliai/refs/heads/main/openapi/friendliai-serverless-toolassistedchat-api-openapi.yml