openapi: 3.0.3 info: title: Log10 Feedback API Spec description: Log10 Feedback API Spec version: 1.0.0 servers: - url: https://log10.io tags: - name: Completions description: Completions - name: Feedback description: Feedback - name: FeedbackTasks description: FeedbackTasks - name: Sessions description: Sessions x-speakeasy-globals: parameters: - name: X-Log10-Organization in: header required: true schema: type: string components: securitySchemes: Log10Token: # arbitrary name for the security scheme type: apiKey in: header # can be "header", "query" or "cookie" name: X-Log10-Token # name of the header, query parameter or cookie schemas: Task: type: object required: - name - instruction - json_schema - completion_tags_selector properties: id: type: string description: The unique identifier for this task. created_at_ms: type: number description: The epoch this schema was created. json_schema: type: object description: The schema of the task. Must be valid JSON Schema. name: type: string description: The name of the task. instruction: type: string description: The instructions for this task. completion_tags_selector: type: object description: The completion tag matching with this task i.e. surfaced as needing feedback. items: type: string Feedback: type: object required: - task_id - json_values - matched_completion_ids - comment properties: id: type: string description: The unique identifier for this feedback. created_at_ms: type: number description: The epoch this schema was created. task_id: type: string description: The unique identifier for the task associated with this feedback. json_values: type: object description: The values of the feedback. Must be valid JSON according to the task schema. matched_completion_ids: type: array description: The matched completion ids associated with this feedback. items: type: string comment: type: string description: The comment associated with this feedback. completions_summary: type: string Completion: type: object required: - organization_id properties: id: type: string description: The unique identifier for this task. organization_id: type: string description: The unique identifier for the organization. kind: type: string description: The kind of completion i.e. chat messages or prompt enum: - chat - prompt status: type: string description: The status of this completion. enum: - started - finished - failed tags: type: array description: The tags for this completion. items: type: string request: type: object $ref: "openai.yaml#/components/schemas/CreateChatCompletionRequest" response: type: object $ref: "openai.yaml#/components/schemas/CreateChatCompletionResponse" stacktrace: type: array description: The stacktrace for this completion. items: type: object properties: file: type: string description: The file associated with this stacktrace. line: type: string description: The line associated with this stacktrace. lineno: type: number description: The line number associated with this stacktrace. name: type: string description: The function or module associated with this stacktrace. required: - file - line - lineno - name session_id: type: string description: The session id for this completion. duration: type: number description: The duration of this completion in seconds. failure_kind: type: string description: The failure kind of this completion. failure_reason: type: string description: The failure reason of this completion. Session: type: object properties: id: type: string description: The unique identifier for this session. paths: /api/v1/completions: post: tags: - Completions operationId: create summary: Create a completion security: - Log10Token: [] parameters: - name: X-Log10-Organization in: header required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Completion" responses: "200": description: Created content: application/json: schema: type: object x-speakeasy-type-override: any "201": description: Created content: application/json: schema: $ref: "#/components/schemas/Completion" /api/v1/completions/{completionId}: post: parameters: - name: completionId in: path required: true description: The completion id to update. schema: type: string - name: X-Log10-Organization in: header required: true schema: type: string tags: - Completions operationId: update summary: Update completion by id. security: - Log10Token: [] requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Completion" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Completion" /api/v1/sessions: post: tags: - Sessions x-speakeasy-name-override: create x-speakeasy-usage-example: true operationId: createSession summary: Create a session security: - Log10Token: [] parameters: - name: X-Log10-Organization in: header required: true schema: type: string responses: "201": description: Created content: application/json: schema: type: object properties: session: $ref: "#/components/schemas/Session" /api/v1/completions/ungraded: get: tags: - Completions operationId: listUngraded summary: List ungraded completions i.e. completions that have not been associated with feedback but matches task selector. security: - Log10Token: [] parameters: - name: X-Log10-Organization in: header required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: object properties: completions: type: array items: $ref: "#/components/schemas/Completion" /api/v1/feedback/{feedbackId}: get: tags: - Feedback parameters: - name: feedbackId in: path required: true description: The feedback id to fetch. schema: type: string - name: X-Log10-Organization in: header required: true schema: type: string operationId: get summary: Fetch feedback by id. security: - Log10Token: [] responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Feedback" /api/v1/feedback: get: tags: - Feedback operationId: list summary: List feedback security: - Log10Token: [] parameters: - name: X-Log10-Organization in: header required: true schema: type: string requestBody: content: application/json: schema: type: object properties: offset: type: integer description: The offset to start fetching feedback from. limit: type: integer description: The number of feedback to fetch. completion_id: type: string description: The completion id to fetch feedback for. task_id: type: string description: The task id to fetch feedback for. responses: "200": description: OK content: application/json: schema: type: object properties: feedback: type: array items: $ref: "#/components/schemas/Feedback" post: summary: Upload a piece of feedback tags: - Feedback operationId: upload security: - Log10Token: [] parameters: - name: X-Log10-Organization in: header required: true schema: type: string requestBody: required: true content: application/json: schema: oneOf: - allOf: - $ref: "#/components/schemas/Feedback" - type: object required: - allow_unmatched_feedback - completion_tags_selector properties: allow_unmatched_feedback: type: boolean description: Whether to allow unmatched feedback. Defaults to false. default: false max_matched_completions: type: integer description: The maximum number of matched completions. Returns error if exceeded. Defaults to 100. default: 100 completion_tags_selector: type: array description: The completion tags associated with this feedback. items: type: string - allOf: - $ref: "#/components/schemas/Feedback" - type: object required: - completion_ids properties: completion_ids: type: array description: The completion ids to associate with this feedback. items: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Feedback" /api/v1/feedback_task: get: tags: - FeedbackTasks x-speakeasy-name-override: list operationId: listFeedbackTasks summary: List feedback tasks. responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Task" post: tags: - FeedbackTasks x-speakeasy-name-override: create operationId: createFeedbackTask summary: Create a new task. requestBody: content: application/json: schema: $ref: "#/components/schemas/Task" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Task" /api/v1/feedback_task/{taskId}: get: parameters: - name: taskId in: path required: true description: The task id to fetch. schema: type: string tags: - FeedbackTasks x-speakeasy-name-override: get operationId: getFeedbackTask summary: Retrieves feedback task `taskId`. responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Task"