1 line
13 KiB
JSON
1 line
13 KiB
JSON
{"repo": "arie/serveme", "files": {"app/services/openai_client.rb": {"411a22da3bd8922191c27e98ea8c97e8b8be6ba5": {"t": 1785746180.304737, "n": 1098, "h": "8bbc165eba96ee01", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n extend T::Sig\n\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5.4-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n sig { returns(Symbol) }\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n sig { returns(::OpenAI::Client) }\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 30,\n log_errors: true\n )\n end\n\n sig { params(parameters: T::Hash[Symbol, T.untyped]).returns(T::Hash[String, T.untyped]) }\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "0a56ba7746853bf25c882f158f694f4c58762a8c": {"t": 1785760342.3147235, "n": 1098, "h": "8bbc165eba96ee01", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n extend T::Sig\n\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5.4-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n sig { returns(Symbol) }\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n sig { returns(::OpenAI::Client) }\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 30,\n log_errors: true\n )\n end\n\n sig { params(parameters: T::Hash[Symbol, T.untyped]).returns(T::Hash[String, T.untyped]) }\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "b96985a70520281fe04e0ebf1e9fe6ecbd41c734": {"t": 1785760343.6395633, "n": 926, "h": "018b4d6a29eb3f50", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5.4-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 30,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "20c4552f72105f8b1537b7c2de468d1411f54815": {"t": 1785760345.0242436, "n": 924, "h": "3b6c8b3adbdfd824", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 30,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "6de15d9777f6407adc7823911ef94d4c24d1fe7d": {"t": 1785760351.341258, "n": 924, "h": "ea17f176f65477b1", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "af1c60e15af86320d65b5f6d051d946b8ca4f282": {"t": 1785760358.811808, "n": 926, "h": "9b28e40c414cfa47", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4.1-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "8483b031889d2d34f9d7720b290e5224d48ffdd0": {"t": 1785760359.9871912, "n": 924, "h": "ea17f176f65477b1", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-5-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "54f3ba82913513ab51e5b6d8262d0dadc41acadb": {"t": 1785760362.283237, "n": 926, "h": "9b28e40c414cfa47", "c": "# typed: true\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4.1-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "83e0e907a576c439da7eae83d14db18315542060": {"t": 1785760363.4772518, "n": 927, "h": "6de7a139d274add0", "c": "# typed: false\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4.1-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "feb852f51d62be2c78add2b15e5837fae2784415": {"t": 1785760364.6265507, "n": 926, "h": "746bf69bb94da4f0", "c": "# typed: false\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4o-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.5-flash-preview-04-17\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "0777988dfd2621f1025ebcbd6bca9a30a643ba60": {"t": 1785760366.297517, "n": 912, "h": "b6302db5110fd944", "c": "# typed: false\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4o-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n },\n gemini: {\n uri_base: \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n default_model: \"gemini-2.0-flash\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}, "2c7edbf161e7fbe86c4e79a5372fef12c02fdb14": {"t": 1785760367.8926215, "n": 775, "h": "02757007af5c41fc", "c": "# typed: false\n\nrequire \"openai\"\n\nclass OpenaiClient\n PROVIDERS = {\n openai: {\n uri_base: \"https://api.openai.com/\",\n default_model: \"gpt-4o-mini\"\n },\n deepseek: {\n uri_base: \"https://api.deepseek.com/v1/\",\n default_model: \"deepseek-chat\"\n }\n }\n\n def self.provider\n Rails.application.credentials.dig(:ai_provider)&.to_sym || :openai\n end\n\n def self.instance\n @instance ||= ::OpenAI::Client.new(\n access_token: Rails.application.credentials.dig(provider, :api_key),\n uri_base: PROVIDERS.dig(provider, :uri_base),\n request_timeout: 15,\n log_errors: true\n )\n end\n\n def self.chat(parameters)\n parameters[:model] ||= PROVIDERS.dig(provider, :default_model)\n instance.chat(parameters: parameters)\n end\nend\n"}}}} |