seekrai 0.0.1__py3-none-any.whl → 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. seekrai/__init__.py +0 -15
  2. seekrai/abstract/api_requestor.py +121 -297
  3. seekrai/client.py +10 -11
  4. seekrai/constants.py +36 -16
  5. seekrai/error.py +1 -8
  6. seekrai/filemanager.py +40 -79
  7. seekrai/resources/chat/completions.py +13 -13
  8. seekrai/resources/completions.py +4 -4
  9. seekrai/resources/embeddings.py +4 -2
  10. seekrai/resources/files.py +17 -9
  11. seekrai/resources/finetune.py +57 -82
  12. seekrai/resources/images.py +2 -2
  13. seekrai/resources/models.py +115 -15
  14. seekrai/types/__init__.py +5 -4
  15. seekrai/types/common.py +1 -2
  16. seekrai/types/files.py +23 -19
  17. seekrai/types/finetune.py +20 -26
  18. seekrai/types/models.py +26 -20
  19. seekrai/utils/_log.py +3 -3
  20. seekrai/utils/api_helpers.py +2 -2
  21. seekrai/utils/tools.py +1 -1
  22. seekrai-0.1.1.dist-info/METADATA +165 -0
  23. seekrai-0.1.1.dist-info/RECORD +39 -0
  24. seekrai/cli/__init__.py +0 -0
  25. seekrai/cli/api/__init__.py +0 -0
  26. seekrai/cli/api/chat.py +0 -245
  27. seekrai/cli/api/completions.py +0 -107
  28. seekrai/cli/api/files.py +0 -125
  29. seekrai/cli/api/finetune.py +0 -175
  30. seekrai/cli/api/images.py +0 -82
  31. seekrai/cli/api/models.py +0 -42
  32. seekrai/cli/cli.py +0 -77
  33. seekrai/legacy/__init__.py +0 -0
  34. seekrai/legacy/base.py +0 -27
  35. seekrai/legacy/complete.py +0 -91
  36. seekrai/legacy/embeddings.py +0 -25
  37. seekrai/legacy/files.py +0 -140
  38. seekrai/legacy/finetune.py +0 -173
  39. seekrai/legacy/images.py +0 -25
  40. seekrai/legacy/models.py +0 -44
  41. seekrai-0.0.1.dist-info/METADATA +0 -401
  42. seekrai-0.0.1.dist-info/RECORD +0 -56
  43. {seekrai-0.0.1.dist-info → seekrai-0.1.1.dist-info}/LICENSE +0 -0
  44. {seekrai-0.0.1.dist-info → seekrai-0.1.1.dist-info}/WHEEL +0 -0
  45. {seekrai-0.0.1.dist-info → seekrai-0.1.1.dist-info}/entry_points.txt +0 -0
@@ -1,401 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: seekrai
3
- Version: 0.0.1
4
- Summary: Python client for SeekrAI
5
- Home-page: https://gitlab.cb.ntent.com/ml/seekr-py
6
- License: Apache-2.0
7
- Author: SeekrFlow
8
- Author-email: support@seekr.com
9
- Requires-Python: >=3.8,<4.0
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Operating System :: POSIX :: Linux
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3.12
18
- Requires-Dist: aiohttp (>=3.9.3,<4.0.0)
19
- Requires-Dist: click (>=8.1.7,<9.0.0)
20
- Requires-Dist: eval-type-backport (>=0.1.3,<0.3.0)
21
- Requires-Dist: filelock (>=3.13.1,<4.0.0)
22
- Requires-Dist: numpy (>=1.23.5) ; python_version < "3.12"
23
- Requires-Dist: numpy (>=1.26.0) ; python_version >= "3.12"
24
- Requires-Dist: openai (>=1.25.0,<2.0.0)
25
- Requires-Dist: pillow (>=10.3.0,<11.0.0)
26
- Requires-Dist: pyarrow (>=10.0.1)
27
- Requires-Dist: pydantic (>=2.7,<3.0)
28
- Requires-Dist: requests (>=2.31.0,<3.0.0)
29
- Requires-Dist: tabulate (>=0.9.0,<0.10.0)
30
- Requires-Dist: tqdm (>=4.66.2,<5.0.0)
31
- Requires-Dist: typer (>=0.9,<0.13)
32
- Project-URL: Homepage, https://www.seekr.com/
33
- Project-URL: Repository, https://gitlab.cb.ntent.com/ml/seekr-py
34
- Description-Content-Type: text/markdown
35
-
36
- The [Seekr Python Library](https://pypi.org/project/seekrflow/) is the official Python client for SeekrFlow's API platform, providing a convenient way for interacting with the REST APIs and enables easy integrations with Python 3.8+ applications with easy to use synchronous and asynchronous clients.
37
-
38
- # Installation
39
-
40
- > 🚧
41
- > The library was rewritten in v1.0.0 released in April of 2024. There were significant changes made.
42
-
43
- To install Seekr Python Library from PyPi, simply run:
44
-
45
- ```shell Shell
46
- pip install --upgrade seekrai
47
- ```
48
-
49
- ## Setting up API Key
50
-
51
- > 🚧 You will need to create an account with [Seekr.com](https://api.seekrflow.xyz/) to obtain a SeekrFlow API Key.
52
-
53
- Once logged in to the SeekrFlow Playground, you can find available API keys in [this settings page](https://api.seekrflow.xyz/settings/api-keys).
54
-
55
- ### Setting environment variable
56
-
57
- ```shell
58
- export SEEKRFLOW_API_KEY=xxxxx
59
- ```
60
-
61
- ### Using the client
62
-
63
- ```python
64
- from seekrai import SeekrFlow
65
-
66
- client = SeekrFlow(api_key="xxxxx")
67
- ```
68
-
69
- This library contains both a python library and a CLI. We'll demonstrate how to use both below.
70
-
71
- # Usage – Python Client
72
-
73
- ## Chat Completions
74
-
75
- ```python
76
- import os
77
- from seekrai import SeekrFlow
78
-
79
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
80
-
81
- response = client.chat.completions.create(
82
- model="mistralai/Mixtral-8x7B-Instruct-v0.1",
83
- messages=[{"role": "user", "content": "tell me about new york"}],
84
- )
85
- print(response.choices[0].message.content)
86
- ```
87
-
88
- ### Streaming
89
-
90
- ```python
91
- import os
92
- from seekrai import SeekrFlow
93
-
94
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
95
- stream = client.chat.completions.create(
96
- model="mistralai/Mixtral-8x7B-Instruct-v0.1",
97
- messages=[{"role": "user", "content": "tell me about new york"}],
98
- stream=True,
99
- )
100
-
101
- for chunk in stream:
102
- print(chunk.choices[0].delta.content or "", end="", flush=True)
103
- ```
104
-
105
- ### Async usage
106
-
107
- ```python
108
- import os, asyncio
109
- from seekrai import AsyncSeekrFlow
110
-
111
- async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
112
- messages = [
113
- "What are the top things to do in San Francisco?",
114
- "What country is Paris in?",
115
- ]
116
-
117
-
118
- async def async_chat_completion(messages):
119
- async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
120
- tasks = [
121
- async_client.chat.completions.create(
122
- model="mistralai/Mixtral-8x7B-Instruct-v0.1",
123
- messages=[{"role": "user", "content": message}],
124
- )
125
- for message in messages
126
- ]
127
- responses = await asyncio.gather(*tasks)
128
-
129
- for response in responses:
130
- print(response.choices[0].message.content)
131
-
132
-
133
- asyncio.run(async_chat_completion(messages))
134
- ```
135
-
136
- ## Completions
137
-
138
- Completions are for code and language models shown [here](https://docs.seekrflow.ai/docs/inference-models). Below, a code model example is shown.
139
-
140
- ```python
141
- import os
142
- from seekrai import SeekrFlow
143
-
144
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
145
-
146
- response = client.completions.create(
147
- model="codellama/CodeLlama-34b-Python-hf",
148
- prompt="Write a Next.js component with TailwindCSS for a header component.",
149
- )
150
- print(response.choices[0].text)
151
- ```
152
-
153
- ### Streaming
154
-
155
- ```python
156
- import os
157
- from seekrai import SeekrFlow
158
-
159
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
160
- stream = client.completions.create(
161
- model="codellama/CodeLlama-34b-Python-hf",
162
- prompt="Write a Next.js component with TailwindCSS for a header component.",
163
- stream=True,
164
- )
165
-
166
- for chunk in stream:
167
- print(chunk.choices[0].delta.content or "", end="", flush=True)
168
- ```
169
-
170
- ### Async usage
171
-
172
- ```python
173
- import os, asyncio
174
- from seekrai import AsyncSeekrFlow
175
-
176
- async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
177
- prompts = [
178
- "Write a Next.js component with TailwindCSS for a header component.",
179
- "Write a python function for the fibonacci sequence",
180
- ]
181
-
182
-
183
- async def async_chat_completion(prompts):
184
- async_client = AsyncSeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
185
- tasks = [
186
- async_client.completions.create(
187
- model="codellama/CodeLlama-34b-Python-hf",
188
- prompt=prompt,
189
- )
190
- for prompt in prompts
191
- ]
192
- responses = await asyncio.gather(*tasks)
193
-
194
- for response in responses:
195
- print(response.choices[0].text)
196
-
197
-
198
- asyncio.run(async_chat_completion(prompts))
199
- ```
200
-
201
- ## Image generation
202
-
203
- ```python
204
- import os
205
- from seekrai import SeekrFlow
206
-
207
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
208
-
209
- response = client.images.generate(
210
- prompt="space robots",
211
- model="stabilityai/stable-diffusion-xl-base-1.0",
212
- steps=10,
213
- n=4,
214
- )
215
- print(response.data[0].b64_json)
216
- ```
217
-
218
- ## Embeddings
219
-
220
- ```python
221
- from typing import List
222
- from seekrai import SeekrFlow
223
-
224
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
225
-
226
-
227
- def get_embeddings(texts: List[str], model: str) -> List[List[float]]:
228
- texts = [text.replace("\n", " ") for text in texts]
229
- outputs = client.embeddings.create(model=model, input=texts)
230
- return [outputs.data[i].embedding for i in range(len(texts))]
231
-
232
-
233
- input_texts = ['Our solar system orbits the Milky Way galaxy at about 515,000 mph']
234
- embeddings = get_embeddings(input_texts, model='seekrflowcomputer/m2-bert-80M-8k-retrieval')
235
-
236
- print(embeddings)
237
- ```
238
-
239
- ## Files
240
-
241
- The files API is used for fine-tuning and allows developers to upload data to fine-tune on. It also has several methods to list all files, retrive files, and delete files. Please refer to our fine-tuning docs [here](https://docs.seekrflow.ai/docs/fine-tuning-python).
242
-
243
- ```python
244
- import os
245
- from seekrai import SeekrFlow
246
-
247
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
248
-
249
- client.files.upload(file="somedata.jsonl") # uploads a file
250
- client.files.list() # lists all uploaded files
251
- client.files.retrieve(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # retrieves a specific file
252
- client.files.retrieve_content(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # retrieves content of a specific file
253
- client.files.delete(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # deletes a file
254
- ```
255
-
256
- ## Fine-tunes
257
-
258
- The finetune API is used for fine-tuning and allows developers to create finetuning jobs. It also has several methods to list all jobs, retrive statuses and get checkpoints. Please refer to our fine-tuning docs [here](https://docs.seekrflow.ai/docs/fine-tuning-python).
259
-
260
- ```python
261
- import os
262
- from seekrai import SeekrFlow
263
-
264
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
265
-
266
- client.fine_tuning.create(
267
- training_file='file-d0d318cb-b7d9-493a-bd70-1cfe089d3815',
268
- model='mistralai/Mixtral-8x7B-Instruct-v0.1',
269
- n_epochs=3,
270
- n_checkpoints=1,
271
- batch_size=4,
272
- learning_rate=1e-5,
273
- suffix='my-demo-finetune',
274
- wandb_api_key='1a2b3c4d5e.......',
275
- )
276
- client.fine_tuning.list() # lists all fine-tuned jobs
277
- client.fine_tuning.retrieve(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # retrieves information on finetune event
278
- client.fine_tuning.cancel(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # Cancels a fine-tuning job
279
- client.fine_tuning.list_events(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # Lists events of a fine-tune job
280
- client.fine_tuning.download(
281
- id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # downloads compressed fine-tuned model or checkpoint to local disk
282
- ```
283
-
284
- ## Models
285
-
286
- This lists all the models that SeekrFlow supports.
287
-
288
- ```python
289
- import os
290
- from seekrai import SeekrFlow
291
-
292
- client = SeekrFlow(api_key=os.environ.get("SEEKRFLOW_API_KEY"))
293
-
294
- models = client.models.list()
295
-
296
- for model in models:
297
- print(model)
298
- ```
299
-
300
- # Usage – CLI
301
-
302
- ## Chat Completions
303
-
304
- ```bash
305
- seekrai chat.completions \
306
- --message "system" "You are a helpful assistant named SeekrFlow" \
307
- --message "user" "What is your name?" \
308
- --model mistralai/Mixtral-8x7B-Instruct-v0.1
309
- ```
310
-
311
- The Chat Completions CLI enables streaming tokens to stdout by default. To disable streaming, use `--no-stream`.
312
-
313
- ## Completions
314
-
315
- ```bash
316
- seekrai completions \
317
- "Large language models are " \
318
- --model mistralai/Mixtral-8x7B-v0.1 \
319
- --max-tokens 512 \
320
- --stop "."
321
- ```
322
-
323
- The Completions CLI enables streaming tokens to stdout by default. To disable streaming, use `--no-stream`.
324
-
325
- ## Image Generations
326
-
327
- ```bash
328
- seekrai images generate \
329
- "space robots" \
330
- --model stabilityai/stable-diffusion-xl-base-1.0 \
331
- --n 4
332
- ```
333
-
334
- The image is opened in the default image viewer by default. To disable this, use `--no-show`.
335
-
336
- ## Files
337
-
338
- ```bash
339
- # Help
340
- seekrai files --help
341
-
342
- # Check file
343
- seekrai files check example.jsonl
344
-
345
- # Upload file
346
- seekrai files upload example.jsonl
347
-
348
- # List files
349
- seekrai files list
350
-
351
- # Retrieve file metadata
352
- seekrai files retrieve file-6f50f9d1-5b95-416c-9040-0799b2b4b894
353
-
354
- # Retrieve file content
355
- seekrai files retrieve-content file-6f50f9d1-5b95-416c-9040-0799b2b4b894
356
-
357
- # Delete remote file
358
- seekrai files delete file-6f50f9d1-5b95-416c-9040-0799b2b4b894
359
- ```
360
-
361
- ## Fine-tuning
362
-
363
- ```bash
364
- # Help
365
- seekrai fine-tuning --help
366
-
367
- # Create fine-tune job
368
- seekrai fine-tuning create \
369
- --model seekrflowcomputer/llama-2-7b-chat \
370
- --training-file file-711d8724-b3e3-4ae2-b516-94841958117d
371
-
372
- # List fine-tune jobs
373
- seekrai fine-tuning list
374
-
375
- # Retrieve fine-tune job details
376
- seekrai fine-tuning retrieve ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b
377
-
378
- # List fine-tune job events
379
- seekrai fine-tuning list-events ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b
380
-
381
- # Cancel running job
382
- seekrai fine-tuning cancel ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b
383
-
384
- # Download fine-tuned model weights
385
- seekrai fine-tuning download ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b
386
- ```
387
-
388
- ## Models
389
-
390
- ```bash
391
- # Help
392
- seekrai models --help
393
-
394
- # List models
395
- seekrai models list
396
- ```
397
-
398
- ## Contributing
399
-
400
- Refer to the [Contributing Guide](CONTRIBUTING.md)
401
-
@@ -1,56 +0,0 @@
1
- seekrai/__init__.py,sha256=4Z_VK9I4lqX3r_1vtcUMPHRNm_9rkqjWJUzWOSlpHp0,1398
2
- seekrai/abstract/__init__.py,sha256=wNiOTW9TJpUgfCJCG-wAbhhWWH2PtoVpAuL3nxvQGps,56
3
- seekrai/abstract/api_requestor.py,sha256=fiXXaUxlOZeMlz62WfjpHSI1GUTTEvjGp1CxwbmHVag,25140
4
- seekrai/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- seekrai/cli/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- seekrai/cli/api/chat.py,sha256=yrEhs1XBFRztttOmha-hhshI0mLJsxjSvEakx-HuYcE,7840
7
- seekrai/cli/api/completions.py,sha256=rJkN8IWOD52J0q4w74elNfVOBDvyPJbnIGx_XgU7WSw,3690
8
- seekrai/cli/api/files.py,sha256=bP-0MlG5RhCAxiuLC5jwe303iXUceouLjRWGHMlBCwg,3188
9
- seekrai/cli/api/finetune.py,sha256=jzNA1WVVjDh6ttQpb-AVBG0Sd7Bj6KfWxZbhW3Xg510,4959
10
- seekrai/cli/api/images.py,sha256=D_L2shR1ki35jgjxiKaYitnjHG1ZZe6fWcDZwbFO8i4,2362
11
- seekrai/cli/api/models.py,sha256=gVa0o1FA5WaRfl84xkaqeOI__lU367xmEM9Rwror0xo,1126
12
- seekrai/cli/cli.py,sha256=kiW-QT8mPMujt80bptlaG8TMnfsAKl_a62BcFPLwois,1970
13
- seekrai/client.py,sha256=2WIsiZiKoneTQFWafVSyVbJtcO0UOER3HsvnRzgCZeU,4873
14
- seekrai/constants.py,sha256=uNl_HF0SPC3J0atqA1AluOuAGdaHgepaPxV_Ox6-j5k,955
15
- seekrai/error.py,sha256=HB7w4GkJj-wvC9tLWhYeHMIarQG088cSJ2GWr4N93Bs,5364
16
- seekrai/filemanager.py,sha256=3WWnaYoneMgfcweRzjNbqtRsPsPEaTSASdtUse93tjQ,11499
17
- seekrai/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- seekrai/legacy/base.py,sha256=OSVtz7aKyeOoLv8sN2CqVwJUFOYcTCGeRhxkkCaEUEc,727
19
- seekrai/legacy/complete.py,sha256=a68qMLIrDxXENCPM2OB8Z4evxYRx43RwTFpyKGUQ-EE,2332
20
- seekrai/legacy/embeddings.py,sha256=dUqroJ1LrQs0kJX4guNDyZgIQm6cRBxzh6QtQvLCras,587
21
- seekrai/legacy/files.py,sha256=GqdhSzLPXQEQNTbXvIYSjEvKgYIFTHCeBCs68Yi4nlA,3849
22
- seekrai/legacy/finetune.py,sha256=nBWRqTpg6lP9E1jdrnrE9X2SgXTJf2J-l3MhV2h9zOc,4903
23
- seekrai/legacy/images.py,sha256=0lktig74NgdAhVCZediuVjTRV0hGuyKY6DWQ-mZxoQg,578
24
- seekrai/legacy/models.py,sha256=9OFssojcC6naHUIyNwsvwDEkmBVB3qjAjFphFSNzYd8,1047
25
- seekrai/resources/__init__.py,sha256=6m1J5kXqJFHqDzQkWy5Us-q3Ug1YZWWP1oQtJ_IGsRM,694
26
- seekrai/resources/chat/__init__.py,sha256=KmtPupgECtEN80NyvcnSmieTAFXhwmVxhMHP0qhspA4,618
27
- seekrai/resources/chat/completions.py,sha256=HAo43u1bMSIoIiiIt8ISpCBUGtTXJK6sF7KK74vYocw,11093
28
- seekrai/resources/completions.py,sha256=NVMSF_goqMLq0ynjXuEmi-wNN3FnmjO7FZhMmD-UuPQ,8414
29
- seekrai/resources/embeddings.py,sha256=RJaY2gu-U-z1eCda3igCtXfMZFya9jZ8je37oTIt5KY,2553
30
- seekrai/resources/files.py,sha256=qgX8Q60gBinuqDLPYzHp73kgqmKh7uxBbH2adUH7Cnk,4771
31
- seekrai/resources/finetune.py,sha256=cJhaxMOi-LspxghjwsJjyaRM0USQfwxti6nzvE5u6lg,12657
32
- seekrai/resources/images.py,sha256=ZFH0RQCRbppWr9WGszdqB6d1McWSh6EVKPMjRGByvZo,4782
33
- seekrai/resources/models.py,sha256=PJotW78B1wB7J_kXbx0TioC0z9uisU7Xt4BvMsPqSqo,1793
34
- seekrai/seekrflow_response.py,sha256=5RFEQzamDy7sTSDkxSsZQThZ3biNmeCPeHWdrFId5Go,1320
35
- seekrai/types/__init__.py,sha256=PJggVUXnzdgNB_4QktHjgSf3DS7Spkk21oVpXe5J3y8,1515
36
- seekrai/types/abstract.py,sha256=TqWFQV_6bPblywfCH-r8FCkXWvPkc9KlJ4QVgyrnaMc,642
37
- seekrai/types/chat_completions.py,sha256=GgqEcfdjkWecPVZEHRENctQ1SQ6KB4CculxyKhkvnHo,3571
38
- seekrai/types/common.py,sha256=2zdSkEVfQW7nnNM2fe5nU36ihJQpWLwZRD05XM_nrqM,1491
39
- seekrai/types/completions.py,sha256=lm9AFdZR3Xg5AHPkV-qETHikkwMJmkHrLGr5GG-YR-M,2171
40
- seekrai/types/embeddings.py,sha256=OANoLNOs0aceS8NppVvvcNYQbF7-pAOAmcr30pw64OU,749
41
- seekrai/types/error.py,sha256=uTKISs9aRC4_6zwirtNkanxepN8KY-SqCq0kNbfZylQ,370
42
- seekrai/types/files.py,sha256=fLxHH9yTD7u-8JtpQZWF0dSjYLo3MfLKvQFlhr9PnvU,1908
43
- seekrai/types/finetune.py,sha256=JbAuo1UE0QFIZbvb8u3S1oTBgdTIOQpyNwScU06y3sI,6020
44
- seekrai/types/images.py,sha256=Fusj8OhVYFsT8kz636lRGGivLbPXo_ZNgakKwmzJi3U,914
45
- seekrai/types/models.py,sha256=x8YG2MIaP3G1jiJKtuftRbmiUO3-Tt22c1f-GUaczP8,1011
46
- seekrai/utils/__init__.py,sha256=dfbiYEc47EBVRkq6C4O9y6tTGuPuV3LbV3__v01Mbds,658
47
- seekrai/utils/_log.py,sha256=IjKp_i0Q5Ryqrt-rcq7_Y0F4F9XdjQhx_fs5xyMQqCc,1665
48
- seekrai/utils/api_helpers.py,sha256=R4169B55RNorjTKuolaeu6rGvq4w9gPppolnXoSEf-I,2393
49
- seekrai/utils/files.py,sha256=B61Pwra49MVVWjPtdkx4hBtAuUe9UI63hdNus87Uq0o,7164
50
- seekrai/utils/tools.py,sha256=Lg_4y1Bi-EVTr5CXR7jg87IWUFdheMmhMM44QfAe72M,1789
51
- seekrai/version.py,sha256=q6iGQVFor8zXiPP5F-3vy9TndOxKv5JXbaNJ2kdOQws,125
52
- seekrai-0.0.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
53
- seekrai-0.0.1.dist-info/METADATA,sha256=tD3ThHfxNaieESaDxXxTENA10YO5c88y8u9TFBFsCQU,11094
54
- seekrai-0.0.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
55
- seekrai-0.0.1.dist-info/entry_points.txt,sha256=N49yOEGi1sK7Xr13F_rkkcOxQ88suyiMoOmRhUHTZ_U,48
56
- seekrai-0.0.1.dist-info/RECORD,,