opengradient 0.3.17__py3-none-any.whl → 0.3.18__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.
- opengradient/__init__.py +155 -15
- opengradient/llm/__init__.py +36 -3
- opengradient/llm/og_openai.py +121 -0
- opengradient/types.py +4 -0
- {opengradient-0.3.17.dist-info → opengradient-0.3.18.dist-info}/METADATA +4 -2
- {opengradient-0.3.17.dist-info → opengradient-0.3.18.dist-info}/RECORD +10 -9
- {opengradient-0.3.17.dist-info → opengradient-0.3.18.dist-info}/WHEEL +1 -1
- /opengradient/llm/{chat.py → og_langchain.py} +0 -0
- {opengradient-0.3.17.dist-info → opengradient-0.3.18.dist-info}/entry_points.txt +0 -0
- {opengradient-0.3.17.dist-info → opengradient-0.3.18.dist-info}/licenses/LICENSE +0 -0
opengradient/__init__.py
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"""
|
|
2
|
+
OpenGradient Python SDK for interacting with AI models and infrastructure.
|
|
3
|
+
"""
|
|
4
|
+
|
|
1
5
|
from typing import Dict, List, Optional, Tuple
|
|
2
6
|
|
|
3
7
|
from .client import Client
|
|
@@ -5,7 +9,7 @@ from .defaults import DEFAULT_INFERENCE_CONTRACT_ADDRESS, DEFAULT_RPC_URL
|
|
|
5
9
|
from .types import InferenceMode, LlmInferenceMode, LLM, TEE_LLM
|
|
6
10
|
from . import llm
|
|
7
11
|
|
|
8
|
-
__version__ = "0.3.
|
|
12
|
+
__version__ = "0.3.18"
|
|
9
13
|
|
|
10
14
|
_client = None
|
|
11
15
|
|
|
@@ -14,15 +18,50 @@ def init(email: str,
|
|
|
14
18
|
private_key: str,
|
|
15
19
|
rpc_url=DEFAULT_RPC_URL,
|
|
16
20
|
contract_address=DEFAULT_INFERENCE_CONTRACT_ADDRESS):
|
|
21
|
+
"""Initialize the OpenGradient SDK with authentication and network settings.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
email: User's email address for authentication
|
|
25
|
+
password: User's password for authentication
|
|
26
|
+
private_key: Ethereum private key for blockchain transactions
|
|
27
|
+
rpc_url: Optional RPC URL for the blockchain network, defaults to mainnet
|
|
28
|
+
contract_address: Optional inference contract address
|
|
29
|
+
"""
|
|
17
30
|
global _client
|
|
18
31
|
_client = Client(private_key=private_key, rpc_url=rpc_url, contract_address=contract_address, email=email, password=password)
|
|
19
32
|
|
|
20
33
|
def upload(model_path, model_name, version):
|
|
34
|
+
"""Upload a model file to OpenGradient.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
model_path: Path to the model file on local filesystem
|
|
38
|
+
model_name: Name of the model repository
|
|
39
|
+
version: Version string for this model upload
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
dict: Upload response containing file metadata
|
|
43
|
+
|
|
44
|
+
Raises:
|
|
45
|
+
RuntimeError: If SDK is not initialized
|
|
46
|
+
"""
|
|
21
47
|
if _client is None:
|
|
22
48
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
23
49
|
return _client.upload(model_path, model_name, version)
|
|
24
50
|
|
|
25
51
|
def create_model(model_name: str, model_desc: str, model_path: str = None):
|
|
52
|
+
"""Create a new model repository.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
model_name: Name for the new model repository
|
|
56
|
+
model_desc: Description of the model
|
|
57
|
+
model_path: Optional path to model file to upload immediately
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
dict: Creation response with model metadata and optional upload results
|
|
61
|
+
|
|
62
|
+
Raises:
|
|
63
|
+
RuntimeError: If SDK is not initialized
|
|
64
|
+
"""
|
|
26
65
|
if _client is None:
|
|
27
66
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
28
67
|
|
|
@@ -36,22 +75,37 @@ def create_model(model_name: str, model_desc: str, model_path: str = None):
|
|
|
36
75
|
return result
|
|
37
76
|
|
|
38
77
|
def create_version(model_name, notes=None, is_major=False):
|
|
78
|
+
"""Create a new version for an existing model.
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
model_name: Name of the model repository
|
|
82
|
+
notes: Optional release notes for this version
|
|
83
|
+
is_major: If True, creates a major version bump instead of minor
|
|
84
|
+
|
|
85
|
+
Returns:
|
|
86
|
+
dict: Version creation response with version metadata
|
|
87
|
+
|
|
88
|
+
Raises:
|
|
89
|
+
RuntimeError: If SDK is not initialized
|
|
90
|
+
"""
|
|
39
91
|
if _client is None:
|
|
40
92
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
41
93
|
return _client.create_version(model_name, notes, is_major)
|
|
42
94
|
|
|
43
95
|
def infer(model_cid, inference_mode, model_input, max_retries: Optional[int] = None):
|
|
44
|
-
"""
|
|
45
|
-
Perform inference on a model.
|
|
96
|
+
"""Run inference on a model.
|
|
46
97
|
|
|
47
98
|
Args:
|
|
48
|
-
model_cid:
|
|
99
|
+
model_cid: CID of the model to use
|
|
49
100
|
inference_mode: Mode of inference (e.g. VANILLA)
|
|
50
101
|
model_input: Input data for the model
|
|
51
|
-
max_retries:
|
|
102
|
+
max_retries: Maximum number of retries for failed transactions
|
|
52
103
|
|
|
53
104
|
Returns:
|
|
54
|
-
Tuple
|
|
105
|
+
Tuple[str, Any]: Transaction hash and model output
|
|
106
|
+
|
|
107
|
+
Raises:
|
|
108
|
+
RuntimeError: If SDK is not initialized
|
|
55
109
|
"""
|
|
56
110
|
if _client is None:
|
|
57
111
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
@@ -64,6 +118,23 @@ def llm_completion(model_cid: LLM,
|
|
|
64
118
|
stop_sequence: Optional[List[str]] = None,
|
|
65
119
|
temperature: float = 0.0,
|
|
66
120
|
max_retries: Optional[int] = None) -> Tuple[str, str]:
|
|
121
|
+
"""Generate text completion using an LLM.
|
|
122
|
+
|
|
123
|
+
Args:
|
|
124
|
+
model_cid: CID of the LLM model to use
|
|
125
|
+
prompt: Text prompt for completion
|
|
126
|
+
inference_mode: Mode of inference, defaults to VANILLA
|
|
127
|
+
max_tokens: Maximum tokens to generate
|
|
128
|
+
stop_sequence: Optional list of sequences where generation should stop
|
|
129
|
+
temperature: Sampling temperature (0.0 = deterministic, 1.0 = creative)
|
|
130
|
+
max_retries: Maximum number of retries for failed transactions
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
Tuple[str, str]: Transaction hash and generated text
|
|
134
|
+
|
|
135
|
+
Raises:
|
|
136
|
+
RuntimeError: If SDK is not initialized
|
|
137
|
+
"""
|
|
67
138
|
if _client is None:
|
|
68
139
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
69
140
|
return _client.llm_completion(model_cid=model_cid,
|
|
@@ -83,6 +154,25 @@ def llm_chat(model_cid: LLM,
|
|
|
83
154
|
tools: Optional[List[Dict]] = None,
|
|
84
155
|
tool_choice: Optional[str] = None,
|
|
85
156
|
max_retries: Optional[int] = None) -> Tuple[str, str, Dict]:
|
|
157
|
+
"""Have a chat conversation with an LLM.
|
|
158
|
+
|
|
159
|
+
Args:
|
|
160
|
+
model_cid: CID of the LLM model to use
|
|
161
|
+
messages: List of chat messages, each with 'role' and 'content'
|
|
162
|
+
inference_mode: Mode of inference, defaults to VANILLA
|
|
163
|
+
max_tokens: Maximum tokens to generate
|
|
164
|
+
stop_sequence: Optional list of sequences where generation should stop
|
|
165
|
+
temperature: Sampling temperature (0.0 = deterministic, 1.0 = creative)
|
|
166
|
+
tools: Optional list of tools the model can use
|
|
167
|
+
tool_choice: Optional specific tool to use
|
|
168
|
+
max_retries: Maximum number of retries for failed transactions
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
Tuple[str, str, Dict]: Transaction hash, model response, and metadata
|
|
172
|
+
|
|
173
|
+
Raises:
|
|
174
|
+
RuntimeError: If SDK is not initialized
|
|
175
|
+
"""
|
|
86
176
|
if _client is None:
|
|
87
177
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
88
178
|
return _client.llm_chat(model_cid=model_cid,
|
|
@@ -96,32 +186,82 @@ def llm_chat(model_cid: LLM,
|
|
|
96
186
|
max_retries=max_retries)
|
|
97
187
|
|
|
98
188
|
def login(email: str, password: str):
|
|
189
|
+
"""Login to OpenGradient.
|
|
190
|
+
|
|
191
|
+
Args:
|
|
192
|
+
email: User's email address
|
|
193
|
+
password: User's password
|
|
194
|
+
|
|
195
|
+
Returns:
|
|
196
|
+
dict: Login response with authentication tokens
|
|
197
|
+
|
|
198
|
+
Raises:
|
|
199
|
+
RuntimeError: If SDK is not initialized
|
|
200
|
+
"""
|
|
99
201
|
if _client is None:
|
|
100
202
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
101
203
|
return _client.login(email, password)
|
|
102
204
|
|
|
103
205
|
def list_files(model_name: str, version: str) -> List[Dict]:
|
|
206
|
+
"""List files in a model repository version.
|
|
207
|
+
|
|
208
|
+
Args:
|
|
209
|
+
model_name: Name of the model repository
|
|
210
|
+
version: Version string to list files from
|
|
211
|
+
|
|
212
|
+
Returns:
|
|
213
|
+
List[Dict]: List of file metadata dictionaries
|
|
214
|
+
|
|
215
|
+
Raises:
|
|
216
|
+
RuntimeError: If SDK is not initialized
|
|
217
|
+
"""
|
|
104
218
|
if _client is None:
|
|
105
219
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
106
220
|
return _client.list_files(model_name, version)
|
|
107
221
|
|
|
108
222
|
def generate_image(model: str, prompt: str, height: Optional[int] = None, width: Optional[int] = None) -> bytes:
|
|
109
|
-
"""
|
|
110
|
-
Generate an image using the specified model and prompt.
|
|
223
|
+
"""Generate an image from a text prompt.
|
|
111
224
|
|
|
112
225
|
Args:
|
|
113
|
-
model
|
|
114
|
-
prompt
|
|
115
|
-
height
|
|
116
|
-
width
|
|
226
|
+
model: Model identifier (e.g. "stabilityai/stable-diffusion-xl-base-1.0")
|
|
227
|
+
prompt: Text description of the desired image
|
|
228
|
+
height: Optional height of the generated image in pixels
|
|
229
|
+
width: Optional width of the generated image in pixels
|
|
117
230
|
|
|
118
231
|
Returns:
|
|
119
|
-
bytes:
|
|
232
|
+
bytes: Raw image data as bytes
|
|
120
233
|
|
|
121
234
|
Raises:
|
|
122
|
-
RuntimeError: If
|
|
123
|
-
OpenGradientError: If
|
|
235
|
+
RuntimeError: If SDK is not initialized
|
|
236
|
+
OpenGradientError: If image generation fails
|
|
124
237
|
"""
|
|
125
238
|
if _client is None:
|
|
126
239
|
raise RuntimeError("OpenGradient client not initialized. Call og.init() first.")
|
|
127
240
|
return _client.generate_image(model, prompt, height=height, width=width)
|
|
241
|
+
|
|
242
|
+
__all__ = [
|
|
243
|
+
'generate_image',
|
|
244
|
+
'list_files'
|
|
245
|
+
'login',
|
|
246
|
+
'llm_chat',
|
|
247
|
+
'llm_completion',
|
|
248
|
+
'infer',
|
|
249
|
+
'create_version',
|
|
250
|
+
'create_model',
|
|
251
|
+
'upload',
|
|
252
|
+
'init',
|
|
253
|
+
'LLM',
|
|
254
|
+
'TEE_LLM'
|
|
255
|
+
]
|
|
256
|
+
|
|
257
|
+
__pdoc__ = {
|
|
258
|
+
'account': False,
|
|
259
|
+
'cli': False,
|
|
260
|
+
'client': False,
|
|
261
|
+
'defaults': False,
|
|
262
|
+
'exceptions': False,
|
|
263
|
+
'llm': True,
|
|
264
|
+
'proto': False,
|
|
265
|
+
'types': False,
|
|
266
|
+
'utils': False
|
|
267
|
+
}
|
opengradient/llm/__init__.py
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
"""
|
|
2
|
+
OpenGradient LLM Adapters
|
|
3
|
+
|
|
4
|
+
This module provides adapter interfaces to use OpenGradient LLMs with popular AI frameworks
|
|
5
|
+
like LangChain and OpenAI. These adapters allow seamless integration of OpenGradient models
|
|
6
|
+
into existing applications and agent frameworks.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from .og_langchain import *
|
|
10
|
+
from .og_openai import *
|
|
11
|
+
|
|
12
|
+
def langchain_adapter(private_key: str, model_cid: str, max_tokens: int = 300) -> OpenGradientChatModel:
|
|
13
|
+
"""
|
|
14
|
+
Returns an OpenGradient LLM that implements LangChain's LLM interface
|
|
15
|
+
and can be plugged into LangChain agents.
|
|
16
|
+
"""
|
|
17
|
+
return OpenGradientChatModel(
|
|
18
|
+
private_key=private_key,
|
|
19
|
+
model_cid=model_cid,
|
|
20
|
+
max_tokens=max_tokens)
|
|
21
|
+
|
|
22
|
+
def openai_adapter(private_key: str) -> OpenGradientOpenAIClient:
|
|
23
|
+
"""
|
|
24
|
+
Returns an generic OpenAI LLM client that can be plugged into Swarm and can
|
|
25
|
+
be used with any LLM model on OpenGradient. The LLM is usually defined in the
|
|
26
|
+
agent.
|
|
27
|
+
"""
|
|
28
|
+
return OpenGradientOpenAIClient(private_key=private_key)
|
|
2
29
|
|
|
3
30
|
__all__ = [
|
|
4
|
-
'
|
|
5
|
-
|
|
31
|
+
'langchain_adapter',
|
|
32
|
+
'openai_adapter',
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
__pdoc__ = {
|
|
36
|
+
'og_langchain': False,
|
|
37
|
+
'og_openai': False
|
|
38
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
from openai.types.chat import ChatCompletion
|
|
2
|
+
import opengradient as og
|
|
3
|
+
from opengradient.defaults import DEFAULT_RPC_URL, DEFAULT_INFERENCE_CONTRACT_ADDRESS
|
|
4
|
+
|
|
5
|
+
from typing import List
|
|
6
|
+
import time
|
|
7
|
+
import json
|
|
8
|
+
import uuid
|
|
9
|
+
|
|
10
|
+
class OGCompletions(object):
|
|
11
|
+
client: og.Client
|
|
12
|
+
|
|
13
|
+
def __init__(self, client: og.Client):
|
|
14
|
+
self.client = client
|
|
15
|
+
|
|
16
|
+
def create(
|
|
17
|
+
self,
|
|
18
|
+
model: str,
|
|
19
|
+
messages: List[object],
|
|
20
|
+
tools: List[object],
|
|
21
|
+
tool_choice: str,
|
|
22
|
+
stream: bool = False,
|
|
23
|
+
parallel_tool_calls: bool = False) -> ChatCompletion:
|
|
24
|
+
|
|
25
|
+
# convert OpenAI message format so it's compatible with the SDK
|
|
26
|
+
sdk_messages = OGCompletions.convert_to_abi_compatible(messages)
|
|
27
|
+
|
|
28
|
+
_, finish_reason, chat_completion = self.client.llm_chat(
|
|
29
|
+
model_cid=model,
|
|
30
|
+
messages=sdk_messages,
|
|
31
|
+
max_tokens=200,
|
|
32
|
+
tools=tools,
|
|
33
|
+
tool_choice=tool_choice,
|
|
34
|
+
temperature=0.25,
|
|
35
|
+
inference_mode=og.LlmInferenceMode.VANILLA
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
choice = {
|
|
39
|
+
'index': 0, # Add missing index field
|
|
40
|
+
'finish_reason': finish_reason,
|
|
41
|
+
'message': {
|
|
42
|
+
'role': chat_completion['role'],
|
|
43
|
+
'content': chat_completion['content'],
|
|
44
|
+
'tool_calls': [
|
|
45
|
+
{
|
|
46
|
+
'id': tool_call['id'],
|
|
47
|
+
'type': 'function', # Add missing type field
|
|
48
|
+
'function': { # Add missing function field
|
|
49
|
+
'name': tool_call['name'],
|
|
50
|
+
'arguments': tool_call['arguments']
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for tool_call in chat_completion.get('tool_calls', [])
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return ChatCompletion(
|
|
59
|
+
id=str(uuid.uuid4()),
|
|
60
|
+
created=int(time.time()),
|
|
61
|
+
model=model,
|
|
62
|
+
object='chat.completion',
|
|
63
|
+
choices=[choice]
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
@staticmethod
|
|
67
|
+
@staticmethod
|
|
68
|
+
def convert_to_abi_compatible(messages):
|
|
69
|
+
sdk_messages = []
|
|
70
|
+
|
|
71
|
+
for message in messages:
|
|
72
|
+
role = message['role']
|
|
73
|
+
sdk_message = {
|
|
74
|
+
'role': role
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if role == 'system':
|
|
78
|
+
sdk_message['content'] = message['content']
|
|
79
|
+
elif role == 'user':
|
|
80
|
+
sdk_message['content'] = message['content']
|
|
81
|
+
elif role == 'tool':
|
|
82
|
+
sdk_message['content'] = message['content']
|
|
83
|
+
sdk_message['tool_call_id'] = message['tool_call_id']
|
|
84
|
+
elif role == 'assistant':
|
|
85
|
+
flattened_calls = []
|
|
86
|
+
for tool_call in message['tool_calls']:
|
|
87
|
+
# OpenAI format
|
|
88
|
+
flattened_call = {
|
|
89
|
+
'id': tool_call['id'],
|
|
90
|
+
'name': tool_call['function']['name'],
|
|
91
|
+
'arguments': tool_call['function']['arguments']
|
|
92
|
+
}
|
|
93
|
+
flattened_calls.append(flattened_call)
|
|
94
|
+
|
|
95
|
+
sdk_message['tool_calls'] = flattened_calls
|
|
96
|
+
sdk_message['content'] = message['content']
|
|
97
|
+
|
|
98
|
+
sdk_messages.append(sdk_message)
|
|
99
|
+
|
|
100
|
+
return sdk_messages
|
|
101
|
+
|
|
102
|
+
class OGChat(object):
|
|
103
|
+
completions: OGCompletions
|
|
104
|
+
|
|
105
|
+
def __init__(self, client: og.Client):
|
|
106
|
+
self.completions = OGCompletions(client)
|
|
107
|
+
|
|
108
|
+
class OpenGradientOpenAIClient(object):
|
|
109
|
+
"""OpenAI client implementation"""
|
|
110
|
+
client: og.Client
|
|
111
|
+
chat: OGChat
|
|
112
|
+
|
|
113
|
+
def __init__(self, private_key: str):
|
|
114
|
+
self.client = og.Client(
|
|
115
|
+
private_key=private_key,
|
|
116
|
+
rpc_url=DEFAULT_RPC_URL,
|
|
117
|
+
contract_address=DEFAULT_INFERENCE_CONTRACT_ADDRESS,
|
|
118
|
+
email=None,
|
|
119
|
+
password=None
|
|
120
|
+
)
|
|
121
|
+
self.chat = OGChat(self.client)
|
opengradient/types.py
CHANGED
|
@@ -79,6 +79,8 @@ class Abi:
|
|
|
79
79
|
return result
|
|
80
80
|
|
|
81
81
|
class LLM(str, Enum):
|
|
82
|
+
"""Enum for available LLM models"""
|
|
83
|
+
|
|
82
84
|
META_LLAMA_3_8B_INSTRUCT = "meta-llama/Meta-Llama-3-8B-Instruct"
|
|
83
85
|
LLAMA_3_2_3B_INSTRUCT = "meta-llama/Llama-3.2-3B-Instruct"
|
|
84
86
|
MISTRAL_7B_INSTRUCT_V3 = "mistralai/Mistral-7B-Instruct-v0.3"
|
|
@@ -86,4 +88,6 @@ class LLM(str, Enum):
|
|
|
86
88
|
META_LLAMA_3_1_70B_INSTRUCT = "meta-llama/Llama-3.1-70B-Instruct"
|
|
87
89
|
|
|
88
90
|
class TEE_LLM(str, Enum):
|
|
91
|
+
"""Enum for LLM models available for TEE execution"""
|
|
92
|
+
|
|
89
93
|
META_LLAMA_3_1_70B_INSTRUCT = "meta-llama/Llama-3.1-70B-Instruct"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: opengradient
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.18
|
|
4
4
|
Summary: Python SDK for OpenGradient decentralized model management & inference services
|
|
5
5
|
Project-URL: Homepage, https://opengradient.ai
|
|
6
6
|
Author-email: OpenGradient <oliver@opengradient.ai>
|
|
@@ -25,6 +25,7 @@ License: MIT License
|
|
|
25
25
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
26
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
27
|
SOFTWARE.
|
|
28
|
+
License-File: LICENSE
|
|
28
29
|
Classifier: Development Status :: 3 - Alpha
|
|
29
30
|
Classifier: Intended Audience :: Developers
|
|
30
31
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -85,6 +86,7 @@ Requires-Dist: langchain==0.3.7
|
|
|
85
86
|
Requires-Dist: more-itertools==10.5.0
|
|
86
87
|
Requires-Dist: msgpack==1.1.0
|
|
87
88
|
Requires-Dist: multidict==6.1.0
|
|
89
|
+
Requires-Dist: openai==1.58.1
|
|
88
90
|
Requires-Dist: packaging==24.1
|
|
89
91
|
Requires-Dist: pandas==2.2.3
|
|
90
92
|
Requires-Dist: parsimonious==0.10.0
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
opengradient/__init__.py,sha256=
|
|
1
|
+
opengradient/__init__.py,sha256=CRII5thG_vRVtEqyhc48IWgYwjif2S4kOBbBf6MgH8I,9262
|
|
2
2
|
opengradient/account.py,sha256=2B7rtCXQDX-yF4U69h8B9-OUreJU4IqoGXG_1Hn9nWs,1150
|
|
3
3
|
opengradient/cli.py,sha256=niN8tlLaiVEpdtkdWEUbxidG75nxrlb6mMUfUAIjiVw,26400
|
|
4
4
|
opengradient/client.py,sha256=axMbfqAQ6OWq3sM_D4bGVWrpAd-15Ru-bOHJ6R6GruA,35197
|
|
5
5
|
opengradient/defaults.py,sha256=6tsW9Z84z6YtITCsULTTgnN0KRUZjfSoeWJZqdWkYCo,384
|
|
6
6
|
opengradient/exceptions.py,sha256=v4VmUGTvvtjhCZAhR24Ga42z3q-DzR1Y5zSqP_yn2Xk,3366
|
|
7
|
-
opengradient/types.py,sha256
|
|
7
|
+
opengradient/types.py,sha256=-lGWv_yfXMN48bbvARKIFrj1L0AotIwr2c7GOv1JBcI,2464
|
|
8
8
|
opengradient/utils.py,sha256=lUDPmyPqLwpZI-owyN6Rm3QvUjOn5pLN5G1QyriVm-E,6994
|
|
9
9
|
opengradient/abi/inference.abi,sha256=MR5u9npZ-Yx2EqRW17_M-UnGgFF3mMEMepOwaZ-Bkgc,7040
|
|
10
|
-
opengradient/llm/__init__.py,sha256=
|
|
11
|
-
opengradient/llm/
|
|
10
|
+
opengradient/llm/__init__.py,sha256=J1W_AKPntqlDqLeflhn2x7A0i-dkMT-ol3jlEdFgMWU,1135
|
|
11
|
+
opengradient/llm/og_langchain.py,sha256=F32yN1o8EvRbzZSJkUwI0-FmSVAWMuMTI9ho7wgW5hk,4470
|
|
12
|
+
opengradient/llm/og_openai.py,sha256=GilEkIVDac5Cacennb7YNXD6BKwUj69mfnMkvxkiW5Y,3865
|
|
12
13
|
opengradient/proto/__init__.py,sha256=AhaSmrqV0TXGzCKaoPV8-XUvqs2fGAJBM2aOmDpkNbE,55
|
|
13
14
|
opengradient/proto/infer.proto,sha256=13eaEMcppxkBF8yChptsX9HooWFwJKze7oLZNl-LEb8,1217
|
|
14
15
|
opengradient/proto/infer_pb2.py,sha256=wg2vjLQCNv6HRhYuIqgj9xivi3nO4IPz6E5wh2dhDqY,3446
|
|
15
16
|
opengradient/proto/infer_pb2_grpc.py,sha256=y5GYwD1EdNs892xx58jdfyA0fO5QC7k3uZOtImTHMiE,6891
|
|
16
|
-
opengradient-0.3.
|
|
17
|
-
opengradient-0.3.
|
|
18
|
-
opengradient-0.3.
|
|
19
|
-
opengradient-0.3.
|
|
20
|
-
opengradient-0.3.
|
|
17
|
+
opengradient-0.3.18.dist-info/METADATA,sha256=eH1-0CRuheW8Ho8mMbiivn2WIrgAKZf37c4zlFMloes,8744
|
|
18
|
+
opengradient-0.3.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
19
|
+
opengradient-0.3.18.dist-info/entry_points.txt,sha256=yUKTaJx8RXnybkob0J62wVBiCp_1agVbgw9uzsmaeJc,54
|
|
20
|
+
opengradient-0.3.18.dist-info/licenses/LICENSE,sha256=xEcvQ3AxZOtDkrqkys2Mm6Y9diEnaSeQRKvxi-JGnNA,1069
|
|
21
|
+
opengradient-0.3.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|