Speak OpenAPI Spec

Industry Examples and Live Integrations for OpenAI ChatGPT and LLM Plugins

openapi: 3.0.1
info:
  title: Speak
  description: Learn how to say anything in another language.
  version: 'v1'
servers:
  - url: https://api.speak.com
paths:
  /v1/public/openai/translate:
    post:
      operationId: translate
      summary: Translate and explain how to say a specific phrase or word in another language.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/translateRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/translateResponse'
  /v1/public/openai/explain-phrase:
    post:
      operationId: explainPhrase
      summary: Explain the meaning and usage of a specific foreign language phrase that the user is asking about.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/explainPhraseRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/explainPhraseResponse'
  /v1/public/openai/explain-task:
    post:
      operationId: explainTask
      summary: Explain the best way to say or do something in a specific situation or context with a foreign language. Use this endpoint when the user asks more general or high-level questions.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/explainTaskRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/explainTaskResponse'
components:
  schemas:
    translateRequest:
      type: object
      properties:
        phrase_to_translate:
          type: string
          required: true
          description: Phrase or concept to translate into the foreign language and explain further.
        learning_language:
          type: string
          required: true
          description: The foreign language that the user is learning and asking about. Always use the full name of the language (e.g. Spanish, French).
        native_language:
          type: string
          required: true
          description: The user's native language. Infer this value from the language the user asked their question in. Always use the full name of the language (e.g. Spanish, French).
        additional_context:
          type: string
          required: true
          description: A description of any additional context in the user's question that could affect the explanation - e.g. setting, scenario, situation, tone, speaking style and formality, usage notes, or any other qualifiers.
        full_query:
          type: string
          required: true
          description: Full text of the user's question.
    translateResponse:
      type: object
      properties:
        explanation:
          type: string
          description: An explanation of how to say the input phrase in the foreign language.
    explainPhraseRequest:
      type: object
      properties:
        foreign_phrase:
          type: string
          required: true
          description: Foreign language phrase or word that the user wants an explanation for.
        learning_language:
          type: string
          required: true
          description: The language that the user is asking their language question about. The value can be inferred from question - e.g. for "Somebody said no mames to me, what does that mean", the value should be "Spanish" because "no mames" is a Spanish phrase. Always use the full name of the language (e.g. Spanish, French).
        native_language:
          type: string
          required: true
          description: The user's native language. Infer this value from the language the user asked their question in. Always use the full name of the language (e.g. Spanish, French).
        additional_context:
          type: string
          required: true
          description: A description of any additional context in the user's question that could affect the explanation - e.g. setting, scenario, situation, tone, speaking style and formality, usage notes, or any other qualifiers.
        full_query:
          type: string
          required: true
          description: Full text of the user's question.
    explainPhraseResponse:
      type: object
      properties:
        explanation:
          type: string
          description: An explanation of what the foreign language phrase means, and when you might use it.
    explainTaskRequest:
      type: object
      properties:
        task_description:
          type: string
          required: true
          description: Description of the task that the user wants to accomplish or do. For example, "tell the waiter they messed up my order" or "compliment someone on their shirt"
        learning_language:
          type: string
          required: true
          description: The foreign language that the user is learning and asking about. The value can be inferred from question - for example, if the user asks "how do i ask a girl out in mexico city", the value should be "Spanish" because of Mexico City. Always use the full name of the language (e.g. Spanish, French).
        native_language:
          type: string
          required: true
          description: The user's native language. Infer this value from the language the user asked their question in. Always use the full name of the language (e.g. Spanish, French).
        additional_context:
          type: string
          required: true
          description: A description of any additional context in the user's question that could affect the explanation - e.g. setting, scenario, situation, tone, speaking style and formality, usage notes, or any other qualifiers.
        full_query:
          type: string
          required: true
          description: Full text of the user's question.
    explainTaskResponse:
      type: object
      properties:
        explanation:
          type: string
          description: An explanation of the best thing to say in the foreign language to accomplish the task described in the user's question.