Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.29.0"
".": "0.30.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 122
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-fadefdc7c7e30df47c09df323669b242ff90ee08e51f304175ace5274e0aab49.yml
openapi_spec_hash: 6d20f639d9ff8a097a34962da6218231
config_hash: 902654e60f5d659f2bfcfd903e17c46d
configured_endpoints: 135
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-d64cf80d2ebddf175c5578f68226a3d5bbd3f7fd8d62ccac2205f3fc05a355ee.yml
openapi_spec_hash: d51e0d60d0c536f210b597a211bc5af0
config_hash: e7c42016df9c6bd7bd6ff15101b9bc9b
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.30.0 (2025-10-06)

Full Changelog: [v0.29.0...v0.30.0](https://github.com/openai/openai-ruby/compare/v0.29.0...v0.30.0)

### Features

* **api:** dev day 2025 launches ([98a56b4](https://github.com/openai/openai-ruby/commit/98a56b4c6a1cae0ebf4c0d9bc75933fbcd74af9f))

## 0.29.0 (2025-10-02)

Full Changelog: [v0.28.1...v0.29.0](https://github.com/openai/openai-ruby/compare/v0.28.1...v0.29.0)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
openai (0.29.0)
openai (0.30.0)
connection_pool

GEM
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "openai", "~> 0.29.0"
gem "openai", "~> 0.30.0"
```

<!-- x-release-please-end -->
Expand Down
46 changes: 46 additions & 0 deletions lib/openai.rb
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,39 @@
require_relative "openai/models/beta/assistant_tool_choice_function"
require_relative "openai/models/beta/assistant_tool_choice_option"
require_relative "openai/models/beta/assistant_update_params"
require_relative "openai/models/beta/chatkit/chatkit_attachment"
require_relative "openai/models/beta/chatkit/chatkit_response_output_text"
require_relative "openai/models/beta/chatkit/chatkit_thread"
require_relative "openai/models/beta/chatkit/chatkit_thread_assistant_message_item"
require_relative "openai/models/beta/chatkit/chatkit_thread_item_list"
require_relative "openai/models/beta/chatkit/chatkit_thread_user_message_item"
require_relative "openai/models/beta/chatkit/chatkit_widget_item"
require_relative "openai/models/beta/chatkit/chat_session"
require_relative "openai/models/beta/chatkit/chat_session_automatic_thread_titling"
require_relative "openai/models/beta/chatkit/chat_session_chatkit_configuration"
require_relative "openai/models/beta/chatkit/chat_session_chatkit_configuration_param"
require_relative "openai/models/beta/chatkit/chat_session_expires_after_param"
require_relative "openai/models/beta/chatkit/chat_session_file_upload"
require_relative "openai/models/beta/chatkit/chat_session_history"
require_relative "openai/models/beta/chatkit/chat_session_rate_limits"
require_relative "openai/models/beta/chatkit/chat_session_rate_limits_param"
require_relative "openai/models/beta/chatkit/chat_session_status"
require_relative "openai/models/beta/chatkit/chat_session_workflow_param"
require_relative "openai/models/beta/chatkit/session_cancel_params"
require_relative "openai/models/beta/chatkit/session_create_params"
require_relative "openai/models/beta/chatkit/thread_delete_params"
require_relative "openai/models/beta/chatkit/thread_delete_response"
require_relative "openai/models/beta/chatkit/thread_list_items_params"
require_relative "openai/models/beta/chatkit/thread_list_params"
require_relative "openai/models/beta/chatkit/thread_retrieve_params"
require_relative "openai/models/beta/chatkit_upload_file_params"
require_relative "openai/models/beta/chatkit_upload_file_response"
require_relative "openai/models/beta/chatkit_workflow"
require_relative "openai/models/beta/code_interpreter_tool"
require_relative "openai/models/beta/file_part"
require_relative "openai/models/beta/file_search_tool"
require_relative "openai/models/beta/function_tool"
require_relative "openai/models/beta/image_part"
require_relative "openai/models/beta/message_stream_event"
require_relative "openai/models/beta/run_step_stream_event"
require_relative "openai/models/beta/run_stream_event"
Expand Down Expand Up @@ -642,6 +672,18 @@
require_relative "openai/models/vector_store_search_params"
require_relative "openai/models/vector_store_search_response"
require_relative "openai/models/vector_store_update_params"
require_relative "openai/models/video"
require_relative "openai/models/video_create_error"
require_relative "openai/models/video_create_params"
require_relative "openai/models/video_delete_params"
require_relative "openai/models/video_delete_response"
require_relative "openai/models/video_download_content_params"
require_relative "openai/models/video_list_params"
require_relative "openai/models/video_model"
require_relative "openai/models/video_remix_params"
require_relative "openai/models/video_retrieve_params"
require_relative "openai/models/video_seconds"
require_relative "openai/models/video_size"
require_relative "openai/models/webhooks/batch_cancelled_webhook_event"
require_relative "openai/models/webhooks/batch_completed_webhook_event"
require_relative "openai/models/webhooks/batch_expired_webhook_event"
Expand All @@ -667,6 +709,9 @@
require_relative "openai/resources/batches"
require_relative "openai/resources/beta"
require_relative "openai/resources/beta/assistants"
require_relative "openai/resources/beta/chatkit"
require_relative "openai/resources/beta/chatkit/sessions"
require_relative "openai/resources/beta/chatkit/threads"
require_relative "openai/resources/beta/threads"
require_relative "openai/resources/beta/threads/messages"
require_relative "openai/resources/beta/threads/runs"
Expand Down Expand Up @@ -708,6 +753,7 @@
require_relative "openai/resources/vector_stores"
require_relative "openai/resources/vector_stores/file_batches"
require_relative "openai/resources/vector_stores/files"
require_relative "openai/resources/videos"
require_relative "openai/resources/webhooks"
require_relative "openai/helpers/streaming/response_events"
require_relative "openai/helpers/streaming/response_stream"
Expand Down
4 changes: 4 additions & 0 deletions lib/openai/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ class Client < OpenAI::Internal::Transport::BaseClient
# @return [OpenAI::Resources::Containers]
attr_reader :containers

# @return [OpenAI::Resources::Videos]
attr_reader :videos

# @api private
#
# @return [Hash{String=>String}]
Expand Down Expand Up @@ -170,6 +173,7 @@ def initialize(
@conversations = OpenAI::Resources::Conversations.new(client: self)
@evals = OpenAI::Resources::Evals.new(client: self)
@containers = OpenAI::Resources::Containers.new(client: self)
@videos = OpenAI::Resources::Videos.new(client: self)
end
end
end
4 changes: 2 additions & 2 deletions lib/openai/internal/conversation_cursor_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ module Internal
# end
#
# @example
# conversation_cursor_page.auto_paging_each do |item|
# puts(item)
# conversation_cursor_page.auto_paging_each do |thread|
# puts(thread)
# end
class ConversationCursorPage
include OpenAI::Internal::Type::BasePage
Expand Down
22 changes: 22 additions & 0 deletions lib/openai/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -259,5 +259,27 @@ module OpenAI

VectorStoreUpdateParams = OpenAI::Models::VectorStoreUpdateParams

Video = OpenAI::Models::Video

VideoCreateError = OpenAI::Models::VideoCreateError

VideoCreateParams = OpenAI::Models::VideoCreateParams

VideoDeleteParams = OpenAI::Models::VideoDeleteParams

VideoDownloadContentParams = OpenAI::Models::VideoDownloadContentParams

VideoListParams = OpenAI::Models::VideoListParams

VideoModel = OpenAI::Models::VideoModel

VideoRemixParams = OpenAI::Models::VideoRemixParams

VideoRetrieveParams = OpenAI::Models::VideoRetrieveParams

VideoSeconds = OpenAI::Models::VideoSeconds

VideoSize = OpenAI::Models::VideoSize

Webhooks = OpenAI::Models::Webhooks
end
2 changes: 2 additions & 0 deletions lib/openai/models/all_models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ module ResponsesOnlyModel
COMPUTER_USE_PREVIEW = :"computer-use-preview"
COMPUTER_USE_PREVIEW_2025_03_11 = :"computer-use-preview-2025-03-11"
GPT_5_CODEX = :"gpt-5-codex"
GPT_5_PRO = :"gpt-5-pro"
GPT_5_PRO_2025_10_06 = :"gpt-5-pro-2025-10-06"

# @!method self.values
# @return [Array<Symbol>]
Expand Down
94 changes: 94 additions & 0 deletions lib/openai/models/beta/chatkit/chat_session.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# frozen_string_literal: true

module OpenAI
module Models
module Beta
module ChatKit
class ChatSession < OpenAI::Internal::Type::BaseModel
# @!attribute id
# Identifier for the ChatKit session.
#
# @return [String]
required :id, String

# @!attribute chatkit_configuration
# Resolved ChatKit feature configuration for the session.
#
# @return [OpenAI::Models::Beta::ChatKit::ChatSessionChatKitConfiguration]
required :chatkit_configuration, -> { OpenAI::Beta::ChatKit::ChatSessionChatKitConfiguration }

# @!attribute client_secret
# Ephemeral client secret that authenticates session requests.
#
# @return [String]
required :client_secret, String

# @!attribute expires_at
# Unix timestamp (in seconds) for when the session expires.
#
# @return [Integer]
required :expires_at, Integer

# @!attribute max_requests_per_1_minute
# Convenience copy of the per-minute request limit.
#
# @return [Integer]
required :max_requests_per_1_minute, Integer

# @!attribute object
# Type discriminator that is always `chatkit.session`.
#
# @return [Symbol, :"chatkit.session"]
required :object, const: :"chatkit.session"

# @!attribute rate_limits
# Resolved rate limit values.
#
# @return [OpenAI::Models::Beta::ChatKit::ChatSessionRateLimits]
required :rate_limits, -> { OpenAI::Beta::ChatKit::ChatSessionRateLimits }

# @!attribute status
# Current lifecycle state of the session.
#
# @return [Symbol, OpenAI::Models::Beta::ChatKit::ChatSessionStatus]
required :status, enum: -> { OpenAI::Beta::ChatKit::ChatSessionStatus }

# @!attribute user
# User identifier associated with the session.
#
# @return [String]
required :user, String

# @!attribute workflow
# Workflow metadata for the session.
#
# @return [OpenAI::Models::Beta::ChatKitWorkflow]
required :workflow, -> { OpenAI::Beta::ChatKitWorkflow }

# @!method initialize(id:, chatkit_configuration:, client_secret:, expires_at:, max_requests_per_1_minute:, rate_limits:, status:, user:, workflow:, object: :"chatkit.session")
# Represents a ChatKit session and its resolved configuration.
#
# @param id [String] Identifier for the ChatKit session.
#
# @param chatkit_configuration [OpenAI::Models::Beta::ChatKit::ChatSessionChatKitConfiguration] Resolved ChatKit feature configuration for the session.
#
# @param client_secret [String] Ephemeral client secret that authenticates session requests.
#
# @param expires_at [Integer] Unix timestamp (in seconds) for when the session expires.
#
# @param max_requests_per_1_minute [Integer] Convenience copy of the per-minute request limit.
#
# @param rate_limits [OpenAI::Models::Beta::ChatKit::ChatSessionRateLimits] Resolved rate limit values.
#
# @param status [Symbol, OpenAI::Models::Beta::ChatKit::ChatSessionStatus] Current lifecycle state of the session.
#
# @param user [String] User identifier associated with the session.
#
# @param workflow [OpenAI::Models::Beta::ChatKitWorkflow] Workflow metadata for the session.
#
# @param object [Symbol, :"chatkit.session"] Type discriminator that is always `chatkit.session`.
end
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# frozen_string_literal: true

module OpenAI
module Models
module Beta
module ChatKit
class ChatSessionAutomaticThreadTitling < OpenAI::Internal::Type::BaseModel
# @!attribute enabled
# Whether automatic thread titling is enabled.
#
# @return [Boolean]
required :enabled, OpenAI::Internal::Type::Boolean

# @!method initialize(enabled:)
# Automatic thread title preferences for the session.
#
# @param enabled [Boolean] Whether automatic thread titling is enabled.
end
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# frozen_string_literal: true

module OpenAI
module Models
module Beta
module ChatKit
class ChatSessionChatKitConfiguration < OpenAI::Internal::Type::BaseModel
# @!attribute automatic_thread_titling
# Automatic thread titling preferences.
#
# @return [OpenAI::Models::Beta::ChatKit::ChatSessionAutomaticThreadTitling]
required :automatic_thread_titling, -> { OpenAI::Beta::ChatKit::ChatSessionAutomaticThreadTitling }

# @!attribute file_upload
# Upload settings for the session.
#
# @return [OpenAI::Models::Beta::ChatKit::ChatSessionFileUpload]
required :file_upload, -> { OpenAI::Beta::ChatKit::ChatSessionFileUpload }

# @!attribute history
# History retention configuration.
#
# @return [OpenAI::Models::Beta::ChatKit::ChatSessionHistory]
required :history, -> { OpenAI::Beta::ChatKit::ChatSessionHistory }

# @!method initialize(automatic_thread_titling:, file_upload:, history:)
# ChatKit configuration for the session.
#
# @param automatic_thread_titling [OpenAI::Models::Beta::ChatKit::ChatSessionAutomaticThreadTitling] Automatic thread titling preferences.
#
# @param file_upload [OpenAI::Models::Beta::ChatKit::ChatSessionFileUpload] Upload settings for the session.
#
# @param history [OpenAI::Models::Beta::ChatKit::ChatSessionHistory] History retention configuration.
end
end
end
end
end
Loading