> ## Documentation Index
> Fetch the complete documentation index at: https://developer.watson-orchestrate.ibm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat With Agents



## OpenAPI

````yaml post /v1/orchestrate/{agent_id}/chat/completions
openapi: 3.1.0
info:
  title: WxO Server API
  summary: API for the next gen watsonx Orchestrate stack
  description: >+

    The watsonx Orchestrate Server provides a set of APIs to power the watsonx
    Orchestrate AI assistant. This includes the following core services:


    * Orchestrate Assistant - a built-in AI assistant that powers the
    Orchestrate end-user experience.

    * Custom Assistants - a service layer for interacting with existing AI
    assistatns (such as those in watsonx Assistant).

    * Message Threads - a chat history and async message tracking store.

    * Document Store - manage collections of documents in nearly any format
    including text, pdf, html and many more.

    * Information Extraction - automatically extract clean text and images from
    any document in the Document Store.  Also extract other useful metadata like
    questions answered, keywords, and named entities.

    * Embedding - generate vector embeddings for text and images in the Document
    Store.

    * Vector Index and Retrieval - automatically index documents with rich
    metadata for vector search or hybrid search.

    * Search Engine - create a Gen AI powered search engine that works like Bing
    or Google.

    * Query Engine - configure your own RAG (Retrieval Augmented Generation)
    engine supporting advanced retrieval patterns and automated data management.

    * Model Proxy - create your own LLM model endpoints for chat completions and
    embeddings.  Supports IBM watsonx.ai, IBM BAM, OpenAI, MistralAI, or Ollama
    for local models.


    WxO API Server utilizes the following open source projects:


    * [PostgreSQL](https://www.postgresql.org/)

    * [PGVector](https://github.com/pgvector/pgvector)

    * [LlamaIndex](https://docs.llamaindex.ai/en/stable/)

    * [LangChain](https://python.langchain.com/docs/get_started/introduction)

    * [FastAPI](https://fastapi.tiangolo.com/)

    * [Unstructured](https://unstructured.io/)

    * [Celery](https://docs.celeryproject.org/en/stable/)

  version: 0.1.0
servers:
  - url: https://{api_endpoint}
    description: version
security: []
paths:
  /v1/orchestrate/{agent_id}/chat/completions:
    post:
      tags:
        - Orchestrate Agent
      summary: Chat With Agents
      operationId: Chat_with_Agents_v1_orchestrate__agent_id__chat_completions_post
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            type: string
            title: Agent Id
        - name: X-IBM-THREAD-ID
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Optional header to specify the thread ID
            title: X-Ibm-Thread-Id
          description: Optional header to specify the thread ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletion'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    ChatCompletion:
      properties:
        messages:
          items:
            $ref: '#/components/schemas/CreateMessageV2'
          type: array
          title: Messages
        additional_parameters:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Additional Parameters
        context:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Context
          description: Optional context dictionary
        stream:
          type: boolean
          title: Stream
          default: true
      type: object
      required:
        - messages
      title: ChatCompletion
    ChatCompletionResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        object:
          type: string
          title: Object
        created:
          type: integer
          title: Created
        model:
          type: string
          title: Model
        choices:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Choices
        thread_id:
          type: string
          format: uuid
          title: Thread Id
      type: object
      required:
        - id
        - object
        - created
        - model
        - choices
        - thread_id
      title: ChatCompletionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CreateMessageV2:
      properties:
        role:
          type: string
          title: Role
        content:
          anyOf:
            - items:
                $ref: '#/components/schemas/AssistantContent'
              type: array
            - type: string
            - type: 'null'
          title: Content
      type: object
      required:
        - role
        - content
      title: CreateMessageV2
    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
    AssistantContent:
      properties:
        response_type:
          $ref: '#/components/schemas/AssistantContentType'
        json_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Json Schema
        ui_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Ui Schema
        form_data:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Form Data
          default: {}
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        form_operation:
          anyOf:
            - type: string
            - type: 'null'
          title: Form Operation
        sub_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Sub Type
        event_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Event Type
        dps_payload_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Dps Payload Id
      additionalProperties: true
      type: object
      required:
        - response_type
      title: AssistantContent
    AssistantContentType:
      type: string
      enum:
        - conversational_search
        - text
        - image
        - option
        - pause
        - iframe
        - connect_to_agent
        - suggestion
        - channel_transfer
        - search
        - user_defined
        - video
        - audio
        - date
        - inline_error
        - chat_with_docs_upload
        - disconnected_apps
        - forms
        - form_operation
        - document_processing_response
      title: AssistantContentType
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````