carbon_ruby_sdk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +11 -0
  3. data/Gemfile.lock +89 -0
  4. data/README.md +2325 -0
  5. data/Rakefile +10 -0
  6. data/carbon_ruby_sdk.gemspec +39 -0
  7. data/header.png +0 -0
  8. data/lib/carbon_ruby_sdk/api/auth_api.rb +177 -0
  9. data/lib/carbon_ruby_sdk/api/data_sources_api.rb +217 -0
  10. data/lib/carbon_ruby_sdk/api/embeddings_api.rb +565 -0
  11. data/lib/carbon_ruby_sdk/api/files_api.rb +1526 -0
  12. data/lib/carbon_ruby_sdk/api/health_api.rb +92 -0
  13. data/lib/carbon_ruby_sdk/api/integrations_api.rb +2201 -0
  14. data/lib/carbon_ruby_sdk/api/organizations_api.rb +92 -0
  15. data/lib/carbon_ruby_sdk/api/users_api.rb +209 -0
  16. data/lib/carbon_ruby_sdk/api/utilities_api.rb +710 -0
  17. data/lib/carbon_ruby_sdk/api/webhooks_api.rb +296 -0
  18. data/lib/carbon_ruby_sdk/api_client.rb +436 -0
  19. data/lib/carbon_ruby_sdk/api_client_custom.rb +14 -0
  20. data/lib/carbon_ruby_sdk/api_error.rb +53 -0
  21. data/lib/carbon_ruby_sdk/configuration.rb +354 -0
  22. data/lib/carbon_ruby_sdk/models/add_webhook_props.rb +220 -0
  23. data/lib/carbon_ruby_sdk/models/body_create_upload_file_uploadfile_post.rb +220 -0
  24. data/lib/carbon_ruby_sdk/models/chunk_properties.rb +248 -0
  25. data/lib/carbon_ruby_sdk/models/chunk_properties_nullable.rb +248 -0
  26. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings.rb +246 -0
  27. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings_upload_input.rb +247 -0
  28. data/lib/carbon_ruby_sdk/models/data_source_last_sync_actions.rb +38 -0
  29. data/lib/carbon_ruby_sdk/models/data_source_sync_statuses.rb +38 -0
  30. data/lib/carbon_ruby_sdk/models/data_source_type.rb +76 -0
  31. data/lib/carbon_ruby_sdk/models/data_source_type_nullable.rb +76 -0
  32. data/lib/carbon_ruby_sdk/models/delete_files_query_input.rb +252 -0
  33. data/lib/carbon_ruby_sdk/models/directory_item.rb +266 -0
  34. data/lib/carbon_ruby_sdk/models/document_response.rb +328 -0
  35. data/lib/carbon_ruby_sdk/models/document_response_list.rb +222 -0
  36. data/lib/carbon_ruby_sdk/models/embedding_and_chunk.rb +256 -0
  37. data/lib/carbon_ruby_sdk/models/embedding_generators.rb +43 -0
  38. data/lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb +43 -0
  39. data/lib/carbon_ruby_sdk/models/embedding_properties.rb +226 -0
  40. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_filters.rb +232 -0
  41. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_order_by_columns.rb +37 -0
  42. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_query_input.rb +262 -0
  43. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_response.rb +236 -0
  44. data/lib/carbon_ruby_sdk/models/external_file_sync_statuses.rb +43 -0
  45. data/lib/carbon_ruby_sdk/models/external_source_item.rb +420 -0
  46. data/lib/carbon_ruby_sdk/models/fetch_urls_response.rb +236 -0
  47. data/lib/carbon_ruby_sdk/models/file_content_types.rb +36 -0
  48. data/lib/carbon_ruby_sdk/models/file_content_types_nullable.rb +36 -0
  49. data/lib/carbon_ruby_sdk/models/file_formats.rb +76 -0
  50. data/lib/carbon_ruby_sdk/models/file_formats_nullable.rb +76 -0
  51. data/lib/carbon_ruby_sdk/models/file_statistics.rb +256 -0
  52. data/lib/carbon_ruby_sdk/models/file_statistics_nullable.rb +256 -0
  53. data/lib/carbon_ruby_sdk/models/fresh_desk_connect_request.rb +316 -0
  54. data/lib/carbon_ruby_sdk/models/generic_success_response.rb +220 -0
  55. data/lib/carbon_ruby_sdk/models/get_embedding_documents_body.rb +416 -0
  56. data/lib/carbon_ruby_sdk/models/gitbook_connect_request.rb +234 -0
  57. data/lib/carbon_ruby_sdk/models/gitbook_sync_request.rb +336 -0
  58. data/lib/carbon_ruby_sdk/models/gmail_sync_input.rb +301 -0
  59. data/lib/carbon_ruby_sdk/models/http_validation_error.rb +217 -0
  60. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params.rb +234 -0
  61. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable.rb +235 -0
  62. data/lib/carbon_ruby_sdk/models/list_data_source_items_request.rb +239 -0
  63. data/lib/carbon_ruby_sdk/models/list_data_source_items_response.rb +236 -0
  64. data/lib/carbon_ruby_sdk/models/list_request.rb +230 -0
  65. data/lib/carbon_ruby_sdk/models/list_response.rb +222 -0
  66. data/lib/carbon_ruby_sdk/models/location_property_inner.rb +226 -0
  67. data/lib/carbon_ruby_sdk/models/modify_user_configuration_input.rb +234 -0
  68. data/lib/carbon_ruby_sdk/models/o_auth_url_request.rb +362 -0
  69. data/lib/carbon_ruby_sdk/models/order_dir.rb +36 -0
  70. data/lib/carbon_ruby_sdk/models/organization_response.rb +362 -0
  71. data/lib/carbon_ruby_sdk/models/organization_user_data_source_api.rb +380 -0
  72. data/lib/carbon_ruby_sdk/models/organization_user_data_source_filters.rb +238 -0
  73. data/lib/carbon_ruby_sdk/models/organization_user_data_source_order_by_columns.rb +36 -0
  74. data/lib/carbon_ruby_sdk/models/organization_user_data_source_query_input.rb +246 -0
  75. data/lib/carbon_ruby_sdk/models/organization_user_data_source_response.rb +236 -0
  76. data/lib/carbon_ruby_sdk/models/organization_user_file_tag_create.rb +236 -0
  77. data/lib/carbon_ruby_sdk/models/organization_user_file_tags_remove.rb +236 -0
  78. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb +330 -0
  79. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_order_by_types.rb +39 -0
  80. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_query_input.rb +276 -0
  81. data/lib/carbon_ruby_sdk/models/outlook_sync_input.rb +313 -0
  82. data/lib/carbon_ruby_sdk/models/pagination.rb +228 -0
  83. data/lib/carbon_ruby_sdk/models/presigned_url_response.rb +220 -0
  84. data/lib/carbon_ruby_sdk/models/rank_property.rb +226 -0
  85. data/lib/carbon_ruby_sdk/models/raw_text_input.rb +295 -0
  86. data/lib/carbon_ruby_sdk/models/raw_transcript_property_inner_value.rb +226 -0
  87. data/lib/carbon_ruby_sdk/models/resync_file_query_input.rb +240 -0
  88. data/lib/carbon_ruby_sdk/models/revoke_access_token_input.rb +220 -0
  89. data/lib/carbon_ruby_sdk/models/rss_feed_input.rb +301 -0
  90. data/lib/carbon_ruby_sdk/models/s3_auth_request.rb +234 -0
  91. data/lib/carbon_ruby_sdk/models/s3_file_sync_input.rb +313 -0
  92. data/lib/carbon_ruby_sdk/models/s3_get_file_input.rb +226 -0
  93. data/lib/carbon_ruby_sdk/models/single_chunks_and_embeddings_upload_input.rb +256 -0
  94. data/lib/carbon_ruby_sdk/models/sitemap_scrape_request.rb +361 -0
  95. data/lib/carbon_ruby_sdk/models/source_property.rb +226 -0
  96. data/lib/carbon_ruby_sdk/models/sync_directory_request.rb +220 -0
  97. data/lib/carbon_ruby_sdk/models/sync_files_request.rb +328 -0
  98. data/lib/carbon_ruby_sdk/models/tags.rb +232 -0
  99. data/lib/carbon_ruby_sdk/models/tags1.rb +230 -0
  100. data/lib/carbon_ruby_sdk/models/text_embedding_generators.rb +42 -0
  101. data/lib/carbon_ruby_sdk/models/token_response.rb +234 -0
  102. data/lib/carbon_ruby_sdk/models/upload_file_from_url_input.rb +326 -0
  103. data/lib/carbon_ruby_sdk/models/user_file.rb +524 -0
  104. data/lib/carbon_ruby_sdk/models/user_files_v2.rb +236 -0
  105. data/lib/carbon_ruby_sdk/models/user_request_content.rb +220 -0
  106. data/lib/carbon_ruby_sdk/models/user_response.rb +354 -0
  107. data/lib/carbon_ruby_sdk/models/validation_error.rb +250 -0
  108. data/lib/carbon_ruby_sdk/models/webhook.rb +290 -0
  109. data/lib/carbon_ruby_sdk/models/webhook_filters.rb +218 -0
  110. data/lib/carbon_ruby_sdk/models/webhook_no_key.rb +276 -0
  111. data/lib/carbon_ruby_sdk/models/webhook_order_by_columns.rb +36 -0
  112. data/lib/carbon_ruby_sdk/models/webhook_query_input.rb +246 -0
  113. data/lib/carbon_ruby_sdk/models/webhook_query_response.rb +236 -0
  114. data/lib/carbon_ruby_sdk/models/webscrape_request.rb +375 -0
  115. data/lib/carbon_ruby_sdk/models/white_labeling_response.rb +234 -0
  116. data/lib/carbon_ruby_sdk/models/youtube_transcript_response.rb +252 -0
  117. data/lib/carbon_ruby_sdk/version.rb +11 -0
  118. data/lib/carbon_ruby_sdk.rb +207 -0
  119. data/spec/api/auth_api_spec.rb +50 -0
  120. data/spec/api/data_sources_api_spec.rb +51 -0
  121. data/spec/api/embeddings_api_spec.rb +63 -0
  122. data/spec/api/files_api_spec.rb +178 -0
  123. data/spec/api/health_api_spec.rb +39 -0
  124. data/spec/api/integrations_api_spec.rb +226 -0
  125. data/spec/api/organizations_api_spec.rb +39 -0
  126. data/spec/api/users_api_spec.rb +51 -0
  127. data/spec/api/utilities_api_spec.rb +102 -0
  128. data/spec/api/webhooks_api_spec.rb +62 -0
  129. data/spec/api_client_spec.rb +191 -0
  130. data/spec/configuration_spec.rb +38 -0
  131. data/spec/getting_started_spec.rb +196 -0
  132. data/spec/models/add_webhook_props_spec.rb +28 -0
  133. data/spec/models/body_create_upload_file_uploadfile_post_spec.rb +28 -0
  134. data/spec/models/chunk_properties_nullable_spec.rb +40 -0
  135. data/spec/models/chunk_properties_spec.rb +40 -0
  136. data/spec/models/chunks_and_embeddings_spec.rb +40 -0
  137. data/spec/models/chunks_and_embeddings_upload_input_spec.rb +40 -0
  138. data/spec/models/data_source_last_sync_actions_spec.rb +22 -0
  139. data/spec/models/data_source_sync_statuses_spec.rb +22 -0
  140. data/spec/models/data_source_type_nullable_spec.rb +22 -0
  141. data/spec/models/data_source_type_spec.rb +22 -0
  142. data/spec/models/delete_files_query_input_spec.rb +46 -0
  143. data/spec/models/directory_item_spec.rb +46 -0
  144. data/spec/models/document_response_list_spec.rb +28 -0
  145. data/spec/models/document_response_spec.rb +88 -0
  146. data/spec/models/embedding_and_chunk_spec.rb +46 -0
  147. data/spec/models/embedding_generators_nullable_spec.rb +22 -0
  148. data/spec/models/embedding_generators_spec.rb +22 -0
  149. data/spec/models/embedding_properties_spec.rb +34 -0
  150. data/spec/models/embeddings_and_chunks_filters_spec.rb +34 -0
  151. data/spec/models/embeddings_and_chunks_order_by_columns_spec.rb +22 -0
  152. data/spec/models/embeddings_and_chunks_query_input_spec.rb +52 -0
  153. data/spec/models/embeddings_and_chunks_response_spec.rb +34 -0
  154. data/spec/models/external_file_sync_statuses_spec.rb +22 -0
  155. data/spec/models/external_source_item_spec.rb +124 -0
  156. data/spec/models/fetch_urls_response_spec.rb +34 -0
  157. data/spec/models/file_content_types_nullable_spec.rb +22 -0
  158. data/spec/models/file_content_types_spec.rb +22 -0
  159. data/spec/models/file_formats_nullable_spec.rb +22 -0
  160. data/spec/models/file_formats_spec.rb +22 -0
  161. data/spec/models/file_statistics_nullable_spec.rb +52 -0
  162. data/spec/models/file_statistics_spec.rb +52 -0
  163. data/spec/models/fresh_desk_connect_request_spec.rb +76 -0
  164. data/spec/models/generic_success_response_spec.rb +28 -0
  165. data/spec/models/get_embedding_documents_body_spec.rb +106 -0
  166. data/spec/models/gitbook_connect_request_spec.rb +34 -0
  167. data/spec/models/gitbook_sync_request_spec.rb +76 -0
  168. data/spec/models/gmail_sync_input_spec.rb +70 -0
  169. data/spec/models/http_validation_error_spec.rb +28 -0
  170. data/spec/models/hybrid_search_tuning_params_nullable_spec.rb +34 -0
  171. data/spec/models/hybrid_search_tuning_params_spec.rb +34 -0
  172. data/spec/models/list_data_source_items_request_spec.rb +40 -0
  173. data/spec/models/list_data_source_items_response_spec.rb +34 -0
  174. data/spec/models/list_request_spec.rb +34 -0
  175. data/spec/models/list_response_spec.rb +28 -0
  176. data/spec/models/location_property_inner_spec.rb +22 -0
  177. data/spec/models/modify_user_configuration_input_spec.rb +34 -0
  178. data/spec/models/o_auth_url_request_spec.rb +106 -0
  179. data/spec/models/order_dir_spec.rb +22 -0
  180. data/spec/models/organization_response_spec.rb +94 -0
  181. data/spec/models/organization_user_data_source_api_spec.rb +100 -0
  182. data/spec/models/organization_user_data_source_filters_spec.rb +40 -0
  183. data/spec/models/organization_user_data_source_order_by_columns_spec.rb +22 -0
  184. data/spec/models/organization_user_data_source_query_input_spec.rb +46 -0
  185. data/spec/models/organization_user_data_source_response_spec.rb +34 -0
  186. data/spec/models/organization_user_file_tag_create_spec.rb +34 -0
  187. data/spec/models/organization_user_file_tags_remove_spec.rb +34 -0
  188. data/spec/models/organization_user_files_to_sync_filters_spec.rb +88 -0
  189. data/spec/models/organization_user_files_to_sync_order_by_types_spec.rb +22 -0
  190. data/spec/models/organization_user_files_to_sync_query_input_spec.rb +64 -0
  191. data/spec/models/outlook_sync_input_spec.rb +76 -0
  192. data/spec/models/pagination_spec.rb +34 -0
  193. data/spec/models/presigned_url_response_spec.rb +28 -0
  194. data/spec/models/rank_property_spec.rb +22 -0
  195. data/spec/models/raw_text_input_spec.rb +70 -0
  196. data/spec/models/raw_transcript_property_inner_value_spec.rb +22 -0
  197. data/spec/models/resync_file_query_input_spec.rb +40 -0
  198. data/spec/models/revoke_access_token_input_spec.rb +28 -0
  199. data/spec/models/rss_feed_input_spec.rb +70 -0
  200. data/spec/models/s3_auth_request_spec.rb +34 -0
  201. data/spec/models/s3_file_sync_input_spec.rb +76 -0
  202. data/spec/models/s3_get_file_input_spec.rb +34 -0
  203. data/spec/models/single_chunks_and_embeddings_upload_input_spec.rb +46 -0
  204. data/spec/models/sitemap_scrape_request_spec.rb +100 -0
  205. data/spec/models/source_property_spec.rb +22 -0
  206. data/spec/models/sync_directory_request_spec.rb +28 -0
  207. data/spec/models/sync_files_request_spec.rb +82 -0
  208. data/spec/models/tags1_spec.rb +22 -0
  209. data/spec/models/tags_spec.rb +22 -0
  210. data/spec/models/text_embedding_generators_spec.rb +22 -0
  211. data/spec/models/token_response_spec.rb +34 -0
  212. data/spec/models/upload_file_from_url_input_spec.rb +88 -0
  213. data/spec/models/user_file_spec.rb +190 -0
  214. data/spec/models/user_files_v2_spec.rb +34 -0
  215. data/spec/models/user_request_content_spec.rb +28 -0
  216. data/spec/models/user_response_spec.rb +88 -0
  217. data/spec/models/validation_error_spec.rb +40 -0
  218. data/spec/models/webhook_filters_spec.rb +28 -0
  219. data/spec/models/webhook_no_key_spec.rb +52 -0
  220. data/spec/models/webhook_order_by_columns_spec.rb +22 -0
  221. data/spec/models/webhook_query_input_spec.rb +46 -0
  222. data/spec/models/webhook_query_response_spec.rb +34 -0
  223. data/spec/models/webhook_spec.rb +58 -0
  224. data/spec/models/webscrape_request_spec.rb +106 -0
  225. data/spec/models/white_labeling_response_spec.rb +34 -0
  226. data/spec/models/youtube_transcript_response_spec.rb +46 -0
  227. data/spec/spec_helper.rb +107 -0
  228. metadata +440 -0
@@ -0,0 +1,39 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+
12
+ # Unit tests for Carbon::OrganizationsApi
13
+ describe 'OrganizationsApi' do
14
+ before do
15
+ # run before each test
16
+ @api_instance = Carbon::OrganizationsApi.new
17
+ end
18
+
19
+ after do
20
+ # run after each test
21
+ end
22
+
23
+ describe 'test an instance of OrganizationsApi' do
24
+ it 'should create an instance of OrganizationsApi' do
25
+ expect(@api_instance).to be_instance_of(Carbon::OrganizationsApi)
26
+ end
27
+ end
28
+
29
+ # unit tests for get
30
+ # Get Organization
31
+ # @param [Hash] opts the optional parameters
32
+ # @return [OrganizationResponse]
33
+ describe 'get test' do
34
+ it 'should work' do
35
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,51 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+
12
+ # Unit tests for Carbon::UsersApi
13
+ describe 'UsersApi' do
14
+ before do
15
+ # run before each test
16
+ @api_instance = Carbon::UsersApi.new
17
+ end
18
+
19
+ after do
20
+ # run after each test
21
+ end
22
+
23
+ describe 'test an instance of UsersApi' do
24
+ it 'should create an instance of UsersApi' do
25
+ expect(@api_instance).to be_instance_of(Carbon::UsersApi)
26
+ end
27
+ end
28
+
29
+ # unit tests for get
30
+ # User Endpoint
31
+ # @param user_request_content
32
+ # @param [Hash] opts the optional parameters
33
+ # @return [UserResponse]
34
+ describe 'get test' do
35
+ it 'should work' do
36
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
37
+ end
38
+ end
39
+
40
+ # unit tests for toggle_user_features
41
+ # Toggle User Features
42
+ # @param modify_user_configuration_input
43
+ # @param [Hash] opts the optional parameters
44
+ # @return [GenericSuccessResponse]
45
+ describe 'toggle_user_features test' do
46
+ it 'should work' do
47
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
48
+ end
49
+ end
50
+
51
+ end
@@ -0,0 +1,102 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+
12
+ # Unit tests for Carbon::UtilitiesApi
13
+ describe 'UtilitiesApi' do
14
+ before do
15
+ # run before each test
16
+ @api_instance = Carbon::UtilitiesApi.new
17
+ end
18
+
19
+ after do
20
+ # run after each test
21
+ end
22
+
23
+ describe 'test an instance of UtilitiesApi' do
24
+ it 'should create an instance of UtilitiesApi' do
25
+ expect(@api_instance).to be_instance_of(Carbon::UtilitiesApi)
26
+ end
27
+ end
28
+
29
+ # unit tests for fetch_urls
30
+ # Fetch Urls
31
+ # Extracts all URLs from a webpage. Args: url (str): URL of the webpage Returns: FetchURLsResponse: A response object with a list of URLs extracted from the webpage and the webpage content.
32
+ # @param url
33
+ # @param [Hash] opts the optional parameters
34
+ # @return [FetchURLsResponse]
35
+ describe 'fetch_urls test' do
36
+ it 'should work' do
37
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
+ end
39
+ end
40
+
41
+ # unit tests for fetch_youtube_transcripts
42
+ # Fetch Youtube Transcripts
43
+ # Fetches english transcripts from YouTube videos. Args: id (str): The ID of the YouTube video. raw (bool): Whether to return the raw transcript or not. Defaults to False. Returns: dict: A dictionary with the transcript of the YouTube video.
44
+ # @param id
45
+ # @param [Hash] opts the optional parameters
46
+ # @option opts [Boolean] :raw
47
+ # @return [YoutubeTranscriptResponse]
48
+ describe 'fetch_youtube_transcripts test' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
51
+ end
52
+ end
53
+
54
+ # unit tests for process_sitemap
55
+ # Sitemap
56
+ # Retrieves all URLs from a sitemap, which can subsequently be utilized with our `web_scrape` endpoint. <!--Args: url (str): URL of the sitemap Returns: dict: A dictionary with a list of URLs extracted from the sitemap.-->
57
+ # @param url
58
+ # @param [Hash] opts the optional parameters
59
+ # @return [Object]
60
+ describe 'process_sitemap test' do
61
+ it 'should work' do
62
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
63
+ end
64
+ end
65
+
66
+ # unit tests for scrape_sitemap
67
+ # Scrape Sitemap
68
+ # Extracts all URLs from a sitemap and performs a web scrape on each of them. Args: sitemap_url (str): URL of the sitemap Returns: dict: A response object with the status of the scraping job message.-->
69
+ # @param sitemap_scrape_request
70
+ # @param [Hash] opts the optional parameters
71
+ # @return [Object]
72
+ describe 'scrape_sitemap test' do
73
+ it 'should work' do
74
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
75
+ end
76
+ end
77
+
78
+ # unit tests for scrape_web
79
+ # Web Scrape
80
+ # Conduct a web scrape on a given webpage URL. Our web scraper is fully compatible with JavaScript and supports recursion depth, enabling you to efficiently extract all content from the target website. <!--Args: scraping_requests (List[WebscrapeRequest]): A list of WebscrapeRequest objects. Returns: dict: A response object with the status of the scraping job message.-->
81
+ # @param webscrape_request
82
+ # @param [Hash] opts the optional parameters
83
+ # @return [Object]
84
+ describe 'scrape_web test' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
87
+ end
88
+ end
89
+
90
+ # unit tests for search_urls
91
+ # Search Urls
92
+ # Perform a web search and obtain a list of relevant URLs. As an illustration, when you perform a search for “content related to MRNA,” you will receive a list of links such as the following: - https://tomrenz.substack.com/p/mrna-and-why-it-matters - https://www.statnews.com/2020/11/10/the-story-of-mrna-how-a-once-dismissed-idea-became-a-leading-technology-in-the-covid-vaccine-race/ - https://www.statnews.com/2022/11/16/covid-19-vaccines-were-a-success-but-mrna-still-has-a-delivery-problem/ - https://joomi.substack.com/p/were-still-being-misled-about-how Subsequently, you can submit these links to the web_scrape endpoint in order to retrieve the content of the respective web pages. Args: query (str): Query to search for Returns: FetchURLsResponse: A response object with a list of URLs for a given search query.
93
+ # @param query
94
+ # @param [Hash] opts the optional parameters
95
+ # @return [FetchURLsResponse]
96
+ describe 'search_urls test' do
97
+ it 'should work' do
98
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
99
+ end
100
+ end
101
+
102
+ end
@@ -0,0 +1,62 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+
12
+ # Unit tests for Carbon::WebhooksApi
13
+ describe 'WebhooksApi' do
14
+ before do
15
+ # run before each test
16
+ @api_instance = Carbon::WebhooksApi.new
17
+ end
18
+
19
+ after do
20
+ # run after each test
21
+ end
22
+
23
+ describe 'test an instance of WebhooksApi' do
24
+ it 'should create an instance of WebhooksApi' do
25
+ expect(@api_instance).to be_instance_of(Carbon::WebhooksApi)
26
+ end
27
+ end
28
+
29
+ # unit tests for add_url
30
+ # Add Webhook Url
31
+ # @param add_webhook_props
32
+ # @param [Hash] opts the optional parameters
33
+ # @return [Webhook]
34
+ describe 'add_url test' do
35
+ it 'should work' do
36
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
37
+ end
38
+ end
39
+
40
+ # unit tests for delete_url
41
+ # Delete Webhook Url
42
+ # @param webhook_id
43
+ # @param [Hash] opts the optional parameters
44
+ # @return [GenericSuccessResponse]
45
+ describe 'delete_url test' do
46
+ it 'should work' do
47
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
48
+ end
49
+ end
50
+
51
+ # unit tests for urls
52
+ # Webhook Urls
53
+ # @param webhook_query_input
54
+ # @param [Hash] opts the optional parameters
55
+ # @return [WebhookQueryResponse]
56
+ describe 'urls test' do
57
+ it 'should work' do
58
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,191 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+
11
+ describe Carbon::ApiClient do
12
+ context 'initialization' do
13
+ context 'URL stuff' do
14
+ context 'host' do
15
+ it 'removes http from host' do
16
+
17
+ configuration = Carbon::Configuration.new
18
+ configuration.host = 'http://example.com'
19
+ expect(configuration.host).to eq('example.com')
20
+ end
21
+
22
+ it 'removes https from host' do
23
+ configuration = Carbon::Configuration.new
24
+ configuration.host = 'https://wookiee.com'
25
+ expect(configuration.host).to eq('wookiee.com')
26
+ end
27
+
28
+ it 'removes trailing path from host' do
29
+ configuration = Carbon::Configuration.new
30
+ configuration.host = 'hello.com/v4'
31
+ expect(configuration.host).to eq('hello.com')
32
+ end
33
+ end
34
+
35
+ context 'base_path' do
36
+ it "prepends a slash to base_path" do
37
+ configuration = Carbon::Configuration.new
38
+ configuration.base_path = 'v4/dog'
39
+ expect(configuration.base_path).to eq('/v4/dog')
40
+ end
41
+
42
+ it "doesn't prepend a slash if one is already there" do
43
+ configuration = Carbon::Configuration.new
44
+ configuration.base_path = '/v4/dog'
45
+ expect(configuration.base_path).to eq('/v4/dog')
46
+ end
47
+
48
+ it "ends up as a blank string if nil" do
49
+ configuration = Carbon::Configuration.new
50
+ configuration.base_path = nil
51
+ expect(configuration.base_path).to eq('')
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ describe '#deserialize' do
58
+ it "handles Array<Integer>" do
59
+ api_client = Carbon::ApiClient.new
60
+ headers = { 'Content-Type' => 'application/json' }
61
+ response = double('response', headers: headers, body: '[12, 34]')
62
+ data = api_client.deserialize(response, 'Array<Integer>')
63
+ expect(data).to be_instance_of(Array)
64
+ expect(data).to eq([12, 34])
65
+ end
66
+
67
+ it 'handles Array<Array<Integer>>' do
68
+ api_client = Carbon::ApiClient.new
69
+ headers = { 'Content-Type' => 'application/json' }
70
+ response = double('response', headers: headers, body: '[[12, 34], [56]]')
71
+ data = api_client.deserialize(response, 'Array<Array<Integer>>')
72
+ expect(data).to be_instance_of(Array)
73
+ expect(data).to eq([[12, 34], [56]])
74
+ end
75
+
76
+ it 'handles Hash<String, String>' do
77
+ api_client = Carbon::ApiClient.new
78
+ headers = { 'Content-Type' => 'application/json' }
79
+ response = double('response', headers: headers, body: '{"message": "Hello"}')
80
+ data = api_client.deserialize(response, 'Hash<String, String>')
81
+ expect(data).to be_instance_of(Hash)
82
+ expect(data).to eq(:message => 'Hello')
83
+ end
84
+ end
85
+
86
+ describe "#object_to_hash" do
87
+ it 'ignores nils and includes empty arrays' do
88
+ # uncomment below to test object_to_hash for model
89
+ # api_client = Carbon::ApiClient.new
90
+ # _model = Carbon::ModelName.new
91
+ # update the model attribute below
92
+ # _model.id = 1
93
+ # update the expected value (hash) below
94
+ # expected = {id: 1, name: '', tags: []}
95
+ # expect(api_client.object_to_hash(_model)).to eq(expected)
96
+ end
97
+ end
98
+
99
+ describe '#build_collection_param' do
100
+ let(:param) { ['aa', 'bb', 'cc'] }
101
+ let(:api_client) { Carbon::ApiClient.new }
102
+
103
+ it 'works for csv' do
104
+ expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
105
+ end
106
+
107
+ it 'works for ssv' do
108
+ expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
109
+ end
110
+
111
+ it 'works for tsv' do
112
+ expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
113
+ end
114
+
115
+ it 'works for pipes' do
116
+ expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
117
+ end
118
+
119
+ it 'works for multi' do
120
+ expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
121
+ end
122
+
123
+ it 'fails for invalid collection format' do
124
+ expect { api_client.build_collection_param(param, :INVALID) }.to raise_error(RuntimeError, 'unknown collection format: :INVALID')
125
+ end
126
+ end
127
+
128
+ describe '#json_mime?' do
129
+ let(:api_client) { Carbon::ApiClient.new }
130
+
131
+ it 'works' do
132
+ expect(api_client.json_mime?(nil)).to eq false
133
+ expect(api_client.json_mime?('')).to eq false
134
+
135
+ expect(api_client.json_mime?('application/json')).to eq true
136
+ expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
137
+ expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
138
+
139
+ expect(api_client.json_mime?('application/xml')).to eq false
140
+ expect(api_client.json_mime?('text/plain')).to eq false
141
+ expect(api_client.json_mime?('application/jsonp')).to eq false
142
+ end
143
+ end
144
+
145
+ describe '#select_header_accept' do
146
+ let(:api_client) { Carbon::ApiClient.new }
147
+
148
+ it 'works' do
149
+ expect(api_client.select_header_accept(nil)).to be_nil
150
+ expect(api_client.select_header_accept([])).to be_nil
151
+
152
+ expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
153
+ expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
154
+ expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
155
+
156
+ expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
157
+ expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml')
158
+ end
159
+ end
160
+
161
+ describe '#select_header_content_type' do
162
+ let(:api_client) { Carbon::ApiClient.new }
163
+
164
+ it 'works' do
165
+ expect(api_client.select_header_content_type(nil)).to be_nil
166
+ expect(api_client.select_header_content_type([])).to be_nil
167
+
168
+ expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
169
+ expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
170
+ expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
171
+ expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
172
+ expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
173
+ end
174
+ end
175
+
176
+ describe '#sanitize_filename' do
177
+ let(:api_client) { Carbon::ApiClient.new }
178
+
179
+ it 'works' do
180
+ expect(api_client.sanitize_filename('sun')).to eq('sun')
181
+ expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
182
+ expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
183
+ expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
184
+ expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
185
+ expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
186
+ expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
187
+ expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
188
+ expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,38 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+
11
+ describe Carbon::Configuration do
12
+ let(:config) { Carbon::Configuration.default }
13
+
14
+ before(:each) do
15
+ # uncomment below to setup host and base_path
16
+ # require 'URI'
17
+ # uri = URI.parse("https://api.carbon.ai")
18
+ # Carbon.configure do |c|
19
+ # c.host = uri.host
20
+ # c.base_path = uri.path
21
+ # end
22
+ end
23
+
24
+ describe '#base_url' do
25
+ it 'should have the default value' do
26
+ # uncomment below to test default value of the base path
27
+ # expect(config.base_url).to eq("https://api.carbon.ai")
28
+ end
29
+
30
+ it 'should remove trailing slashes' do
31
+ [nil, '', '/', '//'].each do |base_path|
32
+ config.base_path = base_path
33
+ # uncomment below to test trailing slashes
34
+ # expect(config.base_url).to eq("https://api.carbon.ai")
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,196 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'securerandom'
4
+ require 'debug'
5
+
6
+ describe 'GettingStarted' do
7
+ before do
8
+ Carbon.access_token = "YOUR API KEY"
9
+ Carbon.api_key = "YOUR API KEY"
10
+ Carbon.customer_id = "YOUR API KEY"
11
+ Carbon.host = "http://127.0.0.1:4010"
12
+ end
13
+
14
+ after do
15
+ end
16
+
17
+ it 'Utilities.scrape_web' do
18
+ result = Carbon::Utilities.scrape_web(
19
+ body: [
20
+ {
21
+ "url" => "url_example",
22
+ "recursion_depth" => 3,
23
+ "max_pages_to_scrape" => 100,
24
+ "chunk_size" => 1500,
25
+ "chunk_overlap" => 20,
26
+ "skip_embedding_generation" => false,
27
+ "enable_auto_sync" => false,
28
+ "generate_sparse_vectors" => false,
29
+ "prepend_filename_to_chunks" => false,
30
+ "html_tags_to_skip" => [],
31
+ "css_classes_to_skip" => [],
32
+ "css_selectors_to_skip" => [],
33
+ "embedding_model" => "OPENAI",
34
+ }
35
+ ],
36
+ )
37
+ expect(result).to_not be_nil
38
+ end
39
+
40
+ it 'data_sources.query_user_data_sources' do
41
+ configuration = Carbon::Configuration.new
42
+ configuration.access_token = 'YOUR API KEY'
43
+ configuration.api_key = 'YOUR API KEY'
44
+ configuration.customer_id = 'YOUR API KEY'
45
+ configuration.host = 'http://127.0.0.1:4010'
46
+ carbon = Carbon::Client.new(configuration)
47
+ pagination = {
48
+ "limit" => 10,
49
+ "offset" => 0,
50
+ }
51
+ order_by = "created_at"
52
+ order_dir = "desc"
53
+ filters = {
54
+ "source" => "GOOGLE_DRIVE",
55
+ }
56
+ result = carbon.data_sources.query_user_data_sources(
57
+ pagination: pagination,
58
+ order_by: order_by,
59
+ order_dir: order_dir,
60
+ filters: filters,
61
+ )
62
+ p result
63
+ end
64
+
65
+ it 'data_sources.query_user_data_sources static pattern' do
66
+ result = Carbon::DataSources.query_user_data_sources(
67
+ pagination: {
68
+ "limit" => 10,
69
+ "offset" => 0,
70
+ },
71
+ order_by: "created_at",
72
+ order_dir: "desc",
73
+ filters: {
74
+ "source" => "GOOGLE_DRIVE",
75
+ },
76
+ )
77
+
78
+ # assert result is not nil
79
+ expect(result).to_not be_nil
80
+ end
81
+
82
+ it 'integrations.sync_gitbook' do
83
+ result = Carbon::Integrations.sync_gitbook_with_http_info(
84
+ space_ids: [
85
+ "string_example"
86
+ ],
87
+ data_source_id: 1,
88
+ tags: {},
89
+ chunk_size: 1500,
90
+ chunk_overlap: 20,
91
+ skip_embedding_generation: false,
92
+ embedding_model: "OPENAI",
93
+ generate_sparse_vectors: false,
94
+ prepend_filename_to_chunks: false,
95
+ )
96
+ expect(result).to_not be_nil
97
+ expect(result.data).to_not be_nil
98
+ expect(result.status_code).to eq(200)
99
+ expect(result.headers).to_not be_nil
100
+ expect(result.response).to_not be_nil
101
+ end
102
+
103
+ it 'embedding.get_documents' do
104
+ configuration = Carbon::Configuration.new
105
+ configuration.access_token = 'YOUR API KEY'
106
+ configuration.api_key = 'YOUR API KEY'
107
+ configuration.customer_id = 'YOUR API KEY'
108
+ configuration.host = 'http://127.0.0.1:4010'
109
+ carbon = Carbon::Client.new(configuration)
110
+ result = carbon.embeddings.get_documents(
111
+ query: "a",
112
+ k: 1,
113
+ tags: {
114
+ "key": "string_example",
115
+ },
116
+ query_vector: [
117
+ 3.14
118
+ ],
119
+ file_ids: [
120
+ 1
121
+ ],
122
+ parent_file_ids: [
123
+ 1
124
+ ],
125
+ tags_v2: {
126
+ },
127
+ include_tags: true,
128
+ include_vectors: true,
129
+ include_raw_file: true,
130
+ hybrid_search: true,
131
+ hybrid_search_tuning_parameters: {
132
+ "weight_a" => 0.5,
133
+ "weight_b" => 0.5,
134
+ },
135
+ media_type: "TEXT",
136
+ embedding_model: "OPENAI",
137
+ )
138
+ expect(result).to_not be_nil
139
+ end
140
+
141
+ it 'Webhooks.urls' do
142
+ result = Carbon::Webhooks.urls(
143
+ pagination: {
144
+ "limit" => 10,
145
+ "offset" => 0,
146
+ },
147
+ order_by: "created_at",
148
+ order_dir: "desc",
149
+ filters: {
150
+ "ids" => [],
151
+ },
152
+ )
153
+ expect(result).to_not be_nil
154
+ end
155
+
156
+ it 'Embeddings.upload_chunks_and_embeddings' do
157
+ result = Carbon::Embeddings.upload_chunks_and_embeddings(
158
+ embedding_model: "OPENAI",
159
+ chunks_and_embeddings: [
160
+ {
161
+ "file_id" => 1,
162
+ "chunks_and_embeddings" => [
163
+ {
164
+ "chunk_number" => 1,
165
+ "chunk" => "chunk_example",
166
+ "embedding" => [
167
+ 3.14
168
+ ],
169
+ }
170
+ ],
171
+ }
172
+ ],
173
+ overwrite_existing: false,
174
+ )
175
+ expect(result).to_not be_nil
176
+ end
177
+
178
+ it 'files.upload' do
179
+ # read from directory of this file ../README.md to file
180
+ file = File.open(File.join(File.dirname(__FILE__), "../README.md"), "rb")
181
+
182
+ result = Carbon::Files.upload(
183
+ file: file,
184
+ chunk_size: 1,
185
+ chunk_overlap: 1,
186
+ skip_embedding_generation: false,
187
+ set_page_as_boundary: false,
188
+ embedding_model: "OPENAI",
189
+ use_ocr: false,
190
+ generate_sparse_vectors: false,
191
+ prepend_filename_to_chunks: false,
192
+ max_items_per_chunk: 1,
193
+ )
194
+ expect(result).to_not be_nil
195
+ end
196
+ end