opengradient 0.3.7__tar.gz → 0.3.8__tar.gz
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-0.3.7/src/opengradient.egg-info → opengradient-0.3.8}/PKG-INFO +1 -1
- {opengradient-0.3.7 → opengradient-0.3.8}/pyproject.toml +1 -1
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/__init__.py +1 -1
- opengradient-0.3.8/src/opengradient/abi/inference.abi +1 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/cli.py +156 -14
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/client.py +15 -3
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/defaults.py +1 -1
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/types.py +2 -2
- {opengradient-0.3.7 → opengradient-0.3.8/src/opengradient.egg-info}/PKG-INFO +1 -1
- opengradient-0.3.7/src/opengradient/abi/inference.abi +0 -1
- {opengradient-0.3.7 → opengradient-0.3.8}/LICENSE +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/README.md +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/setup.cfg +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/account.py +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/exceptions.py +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient/utils.py +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient.egg-info/SOURCES.txt +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient.egg-info/dependency_links.txt +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient.egg-info/entry_points.txt +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient.egg-info/requires.txt +0 -0
- {opengradient-0.3.7 → opengradient-0.3.8}/src/opengradient.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opengradient"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.8"
|
|
8
8
|
description = "Python SDK for OpenGradient decentralized model management & inference services"
|
|
9
9
|
authors = [{name = "OpenGradient", email = "oliver@opengradient.ai"}]
|
|
10
10
|
license = {file = "LICENSE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"anonymous":false,"inputs":[{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"},{"internalType":"bool","name":"is_simulation_result","type":"bool"}],"indexed":false,"internalType":"struct ModelOutput","name":"output","type":"tuple"}],"name":"InferenceResult","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"string","name":"finish_reason","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"tool_call_id","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage","name":"message","type":"tuple"}],"indexed":false,"internalType":"struct LLMChatResponse","name":"response","type":"tuple"}],"name":"LLMChatResult","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"string","name":"answer","type":"string"}],"indexed":false,"internalType":"struct LLMCompletionResponse","name":"response","type":"tuple"}],"name":"LLMCompletionResult","type":"event"},{"inputs":[{"internalType":"string","name":"modelId","type":"string"},{"internalType":"enum ModelInferenceMode","name":"inferenceMode","type":"uint8"},{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"}],"internalType":"struct ModelInput","name":"modelInput","type":"tuple"}],"name":"run","outputs":[{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"},{"internalType":"bool","name":"is_simulation_result","type":"bool"}],"internalType":"struct ModelOutput","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"enum LLMInferenceMode","name":"mode","type":"uint8"},{"internalType":"string","name":"modelCID","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"tool_call_id","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage[]","name":"messages","type":"tuple[]"},{"components":[{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"parameters","type":"string"}],"internalType":"struct ToolDefinition[]","name":"tools","type":"tuple[]"},{"internalType":"string","name":"tool_choice","type":"string"},{"internalType":"uint32","name":"max_tokens","type":"uint32"},{"internalType":"string[]","name":"stop_sequence","type":"string[]"},{"internalType":"uint32","name":"temperature","type":"uint32"}],"internalType":"struct LLMChatRequest","name":"request","type":"tuple"}],"name":"runLLMChat","outputs":[{"components":[{"internalType":"string","name":"finish_reason","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"tool_call_id","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage","name":"message","type":"tuple"}],"internalType":"struct LLMChatResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"enum LLMInferenceMode","name":"mode","type":"uint8"},{"internalType":"string","name":"modelCID","type":"string"},{"internalType":"string","name":"prompt","type":"string"},{"internalType":"uint32","name":"max_tokens","type":"uint32"},{"internalType":"string[]","name":"stop_sequence","type":"string[]"},{"internalType":"uint32","name":"temperature","type":"uint32"}],"internalType":"struct LLMCompletionRequest","name":"request","type":"tuple"}],"name":"runLLMCompletion","outputs":[{"components":[{"internalType":"string","name":"answer","type":"string"}],"internalType":"struct LLMCompletionResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}]
|
|
@@ -3,7 +3,9 @@ import json
|
|
|
3
3
|
import logging
|
|
4
4
|
import webbrowser
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import List
|
|
6
|
+
from typing import List, Dict, Optional
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from . import types
|
|
7
9
|
|
|
8
10
|
import click
|
|
9
11
|
|
|
@@ -338,27 +340,27 @@ def infer(ctx, model_cid: str, inference_mode: str, input_data, input_file: Path
|
|
|
338
340
|
|
|
339
341
|
@cli.command()
|
|
340
342
|
@click.option('--model', '-m', 'model_cid', type=click.Choice(LlmModels), required=True, help='CID of the LLM model to run inference on')
|
|
341
|
-
@click.option('--prompt', '-p', required=True, help='Input prompt for the LLM')
|
|
342
|
-
@click.option('--max-tokens', type=int, default=100, help='Maximum number of tokens for LLM output')
|
|
343
|
+
@click.option('--prompt', '-p', required=True, help='Input prompt for the LLM completion')
|
|
344
|
+
@click.option('--max-tokens', type=int, default=100, help='Maximum number of tokens for LLM completion output')
|
|
343
345
|
@click.option('--stop-sequence', multiple=True, help='Stop sequences for LLM')
|
|
344
346
|
@click.option('--temperature', type=float, default=0.0, help='Temperature for LLM inference (0.0 to 1.0)')
|
|
345
347
|
@click.pass_context
|
|
346
|
-
def
|
|
348
|
+
def completion(ctx, model_cid: str, prompt: str, max_tokens: int, stop_sequence: List[str], temperature: float):
|
|
347
349
|
"""
|
|
348
|
-
Run inference on an LLM model.
|
|
350
|
+
Run completion inference on an LLM model.
|
|
349
351
|
|
|
350
|
-
This command runs inference on the specified LLM model using the provided prompt and parameters.
|
|
352
|
+
This command runs a completion inference on the specified LLM model using the provided prompt and parameters.
|
|
351
353
|
|
|
352
354
|
Example usage:
|
|
353
355
|
|
|
354
356
|
\b
|
|
355
|
-
opengradient
|
|
356
|
-
opengradient
|
|
357
|
+
opengradient completion --model meta-llama/Meta-Llama-3-8B-Instruct --prompt "Hello, how are you?" --max-tokens 50 --temperature 0.7
|
|
358
|
+
opengradient completion -m meta-llama/Meta-Llama-3-8B-Instruct -p "Translate to French: Hello world" --stop-sequence "." --stop-sequence "\n"
|
|
357
359
|
"""
|
|
358
360
|
client: Client = ctx.obj['client']
|
|
359
361
|
try:
|
|
360
|
-
click.echo(f"Running LLM inference for model \"{model_cid}\"\n")
|
|
361
|
-
tx_hash, llm_output = client.
|
|
362
|
+
click.echo(f"Running LLM completion inference for model \"{model_cid}\"\n")
|
|
363
|
+
tx_hash, llm_output = client.llm_completion(
|
|
362
364
|
model_cid=model_cid,
|
|
363
365
|
prompt=prompt,
|
|
364
366
|
max_tokens=max_tokens,
|
|
@@ -366,12 +368,12 @@ def llm(ctx, model_cid: str, prompt: str, max_tokens: int, stop_sequence: List[s
|
|
|
366
368
|
temperature=temperature
|
|
367
369
|
)
|
|
368
370
|
|
|
369
|
-
|
|
371
|
+
print_llm_completion_result(model_cid, tx_hash, llm_output)
|
|
370
372
|
except Exception as e:
|
|
371
|
-
click.echo(f"Error running LLM
|
|
373
|
+
click.echo(f"Error running LLM completion: {str(e)}")
|
|
372
374
|
|
|
373
|
-
def
|
|
374
|
-
click.secho("✅ LLM
|
|
375
|
+
def print_llm_completion_result(model_cid, tx_hash, llm_output):
|
|
376
|
+
click.secho("✅ LLM completion Successful", fg="green", bold=True)
|
|
375
377
|
click.echo("──────────────────────────────────────")
|
|
376
378
|
click.echo("Model CID: ", nl=False)
|
|
377
379
|
click.secho(model_cid, fg="cyan", bold=True)
|
|
@@ -386,6 +388,146 @@ def print_llm_inference_result(model_cid, tx_hash, llm_output):
|
|
|
386
388
|
click.echo(llm_output)
|
|
387
389
|
click.echo()
|
|
388
390
|
|
|
391
|
+
|
|
392
|
+
@cli.command()
|
|
393
|
+
@click.option('--model', '-m', 'model_cid',
|
|
394
|
+
type=click.Choice([e.value for e in types.LLM]),
|
|
395
|
+
required=True,
|
|
396
|
+
help='CID of the LLM model to run inference on')
|
|
397
|
+
@click.option('--messages',
|
|
398
|
+
type=str,
|
|
399
|
+
required=False,
|
|
400
|
+
help='Input messages for the chat inference in JSON format')
|
|
401
|
+
@click.option('--messages-file',
|
|
402
|
+
type=click.Path(exists=True, path_type=Path),
|
|
403
|
+
required=False,
|
|
404
|
+
help='Path to JSON file containing input messages for the chat inference')
|
|
405
|
+
@click.option('--max-tokens',
|
|
406
|
+
type=int,
|
|
407
|
+
default=100,
|
|
408
|
+
help='Maximum number of tokens for LLM output')
|
|
409
|
+
@click.option('--stop-sequence',
|
|
410
|
+
type=str,
|
|
411
|
+
default=None,
|
|
412
|
+
multiple=True,
|
|
413
|
+
help='Stop sequences for LLM')
|
|
414
|
+
@click.option('--temperature',
|
|
415
|
+
type=float,
|
|
416
|
+
default=0.0,
|
|
417
|
+
help='Temperature for LLM inference (0.0 to 1.0)')
|
|
418
|
+
@click.option('--tools',
|
|
419
|
+
type=str,
|
|
420
|
+
default="[]",
|
|
421
|
+
help='Tool configurations in JSON format')
|
|
422
|
+
@click.option('--tools-file',
|
|
423
|
+
type=click.Path(exists=True, path_type=Path),
|
|
424
|
+
required=False,
|
|
425
|
+
help='Path to JSON file containing tool configurations')
|
|
426
|
+
@click.option('--tool-choice',
|
|
427
|
+
type=str,
|
|
428
|
+
default='',
|
|
429
|
+
help='Specific tool choice for the LLM')
|
|
430
|
+
@click.pass_context
|
|
431
|
+
def chat(
|
|
432
|
+
ctx,
|
|
433
|
+
model_cid: str,
|
|
434
|
+
messages: Optional[str],
|
|
435
|
+
messages_file: Optional[Path],
|
|
436
|
+
max_tokens: int,
|
|
437
|
+
stop_sequence: List[str],
|
|
438
|
+
temperature: float,
|
|
439
|
+
tools: Optional[str],
|
|
440
|
+
tools_file: Optional[Path],
|
|
441
|
+
tool_choice: Optional[str]):
|
|
442
|
+
"""
|
|
443
|
+
Run chat inference on an LLM model.
|
|
444
|
+
|
|
445
|
+
This command runs a chat inference on the specified LLM model using the provided messages and parameters.
|
|
446
|
+
|
|
447
|
+
Example usage:
|
|
448
|
+
|
|
449
|
+
\b
|
|
450
|
+
opengradient chat --model meta-llama/Meta-Llama-3-8B-Instruct --messages '[{"role":"user","content":"hello"}]' --max-tokens 50 --temperature 0.7
|
|
451
|
+
opengradient chat -m mistralai/Mistral-7B-Instruct-v0.3 --messages-file messages.json --stop-sequence "." --stop-sequence "\n"
|
|
452
|
+
"""
|
|
453
|
+
# TODO (Kyle): ^^^^^^^ Edit description with more examples using tools
|
|
454
|
+
client: Client = ctx.obj['client']
|
|
455
|
+
try:
|
|
456
|
+
click.echo(f"Running LLM chat inference for model \"{model_cid}\"\n")
|
|
457
|
+
if not messages and not messages_file:
|
|
458
|
+
click.echo("Must specify either messages or messages-file")
|
|
459
|
+
ctx.exit(1)
|
|
460
|
+
return
|
|
461
|
+
if messages and messages_file:
|
|
462
|
+
click.echo("Cannot have both messages and messages_file")
|
|
463
|
+
ctx.exit(1)
|
|
464
|
+
return
|
|
465
|
+
|
|
466
|
+
if messages:
|
|
467
|
+
try:
|
|
468
|
+
messages = json.loads(messages)
|
|
469
|
+
except Exception as e:
|
|
470
|
+
click.echo(f"Failed to parse messages: {e}")
|
|
471
|
+
ctx.exit(1)
|
|
472
|
+
else:
|
|
473
|
+
with messages_file.open('r') as file:
|
|
474
|
+
messages = json.load(file)
|
|
475
|
+
|
|
476
|
+
# Parse tools if provided
|
|
477
|
+
if (tools or tools != "[]") and tools_file:
|
|
478
|
+
click.echo("Cannot have both tools and tools_file")
|
|
479
|
+
click.exit(1)
|
|
480
|
+
return
|
|
481
|
+
|
|
482
|
+
parsed_tools=[]
|
|
483
|
+
if tools:
|
|
484
|
+
try:
|
|
485
|
+
parsed_tools = json.loads(tools)
|
|
486
|
+
if not isinstance(parsed_tools, list):
|
|
487
|
+
click.echo("Tools must be a JSON array")
|
|
488
|
+
ctx.exit(1)
|
|
489
|
+
return
|
|
490
|
+
except json.JSONDecodeError as e:
|
|
491
|
+
click.echo(f"Failed to parse tools JSON: {e}")
|
|
492
|
+
ctx.exit(1)
|
|
493
|
+
return
|
|
494
|
+
|
|
495
|
+
if tools_file:
|
|
496
|
+
try:
|
|
497
|
+
with tools_file.open('r') as file:
|
|
498
|
+
parsed_tools = json.load(file)
|
|
499
|
+
if not isinstance(parsed_tools, list):
|
|
500
|
+
click.echo("Tools must be a JSON array")
|
|
501
|
+
ctx.exit(1)
|
|
502
|
+
return
|
|
503
|
+
except Exception as e:
|
|
504
|
+
click.echo("Failed to load JSON from tools_file: %s" % e)
|
|
505
|
+
ctx.exit(1)
|
|
506
|
+
return
|
|
507
|
+
|
|
508
|
+
if not tools and not tools_file:
|
|
509
|
+
parsed_tools = None
|
|
510
|
+
|
|
511
|
+
tx_hash, finish_reason, llm_chat_output = client.llm_chat(
|
|
512
|
+
model_cid=model_cid,
|
|
513
|
+
messages=messages,
|
|
514
|
+
max_tokens=max_tokens,
|
|
515
|
+
stop_sequence=list(stop_sequence),
|
|
516
|
+
temperature=temperature,
|
|
517
|
+
tools=parsed_tools,
|
|
518
|
+
tool_choice=tool_choice,
|
|
519
|
+
)
|
|
520
|
+
|
|
521
|
+
# TODO (Kyle): Make this prettier
|
|
522
|
+
print("TX Hash: ", tx_hash)
|
|
523
|
+
print("Finish reason: ", finish_reason)
|
|
524
|
+
print("Chat output: ", llm_chat_output)
|
|
525
|
+
except Exception as e:
|
|
526
|
+
click.echo(f"Error running LLM chat inference: {str(e)}")
|
|
527
|
+
|
|
528
|
+
def print_llm_chat_result():
|
|
529
|
+
pass
|
|
530
|
+
|
|
389
531
|
@cli.command()
|
|
390
532
|
def create_account():
|
|
391
533
|
"""Create a new test account for OpenGradient inference and model management"""
|
|
@@ -553,7 +553,7 @@ class Client:
|
|
|
553
553
|
tool_choice (str, optional): Sets a specific tool to choose. Default value is "auto".
|
|
554
554
|
|
|
555
555
|
Returns:
|
|
556
|
-
Tuple[str, str]: The transaction hash and
|
|
556
|
+
Tuple[str, str, dict]: The transaction hash, finish reason, and a dictionary struct of LLM chat messages.
|
|
557
557
|
|
|
558
558
|
Raises:
|
|
559
559
|
OpenGradientError: If the inference fails.
|
|
@@ -570,6 +570,10 @@ class Client:
|
|
|
570
570
|
for message in messages:
|
|
571
571
|
if 'tool_calls' not in message:
|
|
572
572
|
message['tool_calls'] = []
|
|
573
|
+
if 'tool_call_id' not in message:
|
|
574
|
+
message['tool_call_id'] = ""
|
|
575
|
+
if 'name' not in message:
|
|
576
|
+
message['name'] = ""
|
|
573
577
|
|
|
574
578
|
# Create simplified tool structure for smart contract
|
|
575
579
|
#
|
|
@@ -638,9 +642,17 @@ class Client:
|
|
|
638
642
|
|
|
639
643
|
if len(parsed_logs) < 1:
|
|
640
644
|
raise OpenGradientError("LLM chat result event not found in transaction logs")
|
|
641
|
-
llm_result = parsed_logs[0]
|
|
645
|
+
llm_result = parsed_logs[0]['args']['response']
|
|
646
|
+
|
|
647
|
+
# Turn tool calls into normal dicts
|
|
648
|
+
message = dict(llm_result['message'])
|
|
649
|
+
if (tool_calls := message.get('tool_calls')) != None:
|
|
650
|
+
new_tool_calls = []
|
|
651
|
+
for tool_call in tool_calls:
|
|
652
|
+
new_tool_calls.append(dict(tool_call))
|
|
653
|
+
message['tool_calls'] = new_tool_calls
|
|
642
654
|
|
|
643
|
-
return tx_hash.hex(), llm_result
|
|
655
|
+
return (tx_hash.hex(), llm_result['finish_reason'], message)
|
|
644
656
|
|
|
645
657
|
except ContractLogicError as e:
|
|
646
658
|
logging.error(f"Contract logic error: {str(e)}", exc_info=True)
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
DEFAULT_RPC_URL="http://18.218.115.248:8545"
|
|
4
4
|
DEFAULT_OG_FAUCET_URL="http://18.218.115.248:8080/?address="
|
|
5
5
|
DEFAULT_HUB_SIGNUP_URL="https://hub.opengradient.ai/signup"
|
|
6
|
-
DEFAULT_INFERENCE_CONTRACT_ADDRESS="
|
|
6
|
+
DEFAULT_INFERENCE_CONTRACT_ADDRESS="0xF78F7d5a7e9f484f0924Cc21347029715bD3B8f4"
|
|
7
7
|
DEFAULT_BLOCKCHAIN_EXPLORER="http://3.145.62.2/tx/"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
from typing import List, Tuple, Union
|
|
3
|
-
|
|
3
|
+
from enum import Enum
|
|
4
4
|
|
|
5
5
|
@dataclass
|
|
6
6
|
class Number:
|
|
@@ -74,7 +74,7 @@ class Abi:
|
|
|
74
74
|
result.append(f"{item['name']}:{item['type']}")
|
|
75
75
|
return result
|
|
76
76
|
|
|
77
|
-
class LLM:
|
|
77
|
+
class LLM(str, Enum):
|
|
78
78
|
META_LLAMA3_8B_INSTRUCT = "meta-llama/Meta-Llama-3-8B-Instruct"
|
|
79
79
|
LLAMA_3_2_3B_INSTRUCT = "meta-llama/Llama-3.2-3B-Instruct"
|
|
80
80
|
MISTRAL_7B_INSTRUCT_V3 = "mistralai/Mistral-7B-Instruct-v0.3"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"anonymous":false,"inputs":[{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"},{"internalType":"bool","name":"is_simulation_result","type":"bool"}],"indexed":false,"internalType":"struct ModelOutput","name":"output","type":"tuple"}],"name":"InferenceResult","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"string","name":"finish_reason","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage","name":"message","type":"tuple"}],"indexed":false,"internalType":"struct LLMChatResponse","name":"response","type":"tuple"}],"name":"LLMChatResult","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"string","name":"answer","type":"string"}],"indexed":false,"internalType":"struct LLMCompletionResponse","name":"response","type":"tuple"}],"name":"LLMCompletionResult","type":"event"},{"inputs":[{"internalType":"string","name":"modelId","type":"string"},{"internalType":"enum ModelInferenceMode","name":"inferenceMode","type":"uint8"},{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"}],"internalType":"struct ModelInput","name":"modelInput","type":"tuple"}],"name":"run","outputs":[{"components":[{"components":[{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"int128","name":"value","type":"int128"},{"internalType":"int128","name":"decimals","type":"int128"}],"internalType":"struct TensorLib.Number[]","name":"values","type":"tuple[]"},{"internalType":"uint32[]","name":"shape","type":"uint32[]"}],"internalType":"struct TensorLib.MultiDimensionalNumberTensor[]","name":"numbers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"internalType":"struct TensorLib.StringTensor[]","name":"strings","type":"tuple[]"},{"internalType":"bool","name":"is_simulation_result","type":"bool"}],"internalType":"struct ModelOutput","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"enum LLMInferenceMode","name":"mode","type":"uint8"},{"internalType":"string","name":"modelCID","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage[]","name":"messages","type":"tuple[]"},{"components":[{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"parameters","type":"string"}],"internalType":"struct ToolDefinition[]","name":"tools","type":"tuple[]"},{"internalType":"string","name":"tool_choice","type":"string"},{"internalType":"uint32","name":"max_tokens","type":"uint32"},{"internalType":"string[]","name":"stop_sequence","type":"string[]"},{"internalType":"uint32","name":"temperature","type":"uint32"}],"internalType":"struct LLMChatRequest","name":"request","type":"tuple"}],"name":"runLLMChat","outputs":[{"components":[{"internalType":"string","name":"finish_reason","type":"string"},{"components":[{"internalType":"string","name":"role","type":"string"},{"internalType":"string","name":"content","type":"string"},{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"arguments","type":"string"}],"internalType":"struct ToolCall[]","name":"tool_calls","type":"tuple[]"}],"internalType":"struct ChatMessage","name":"message","type":"tuple"}],"internalType":"struct LLMChatResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"enum LLMInferenceMode","name":"mode","type":"uint8"},{"internalType":"string","name":"modelCID","type":"string"},{"internalType":"string","name":"prompt","type":"string"},{"internalType":"uint32","name":"max_tokens","type":"uint32"},{"internalType":"string[]","name":"stop_sequence","type":"string[]"},{"internalType":"uint32","name":"temperature","type":"uint32"}],"internalType":"struct LLMCompletionRequest","name":"request","type":"tuple"}],"name":"runLLMCompletion","outputs":[{"components":[{"internalType":"string","name":"answer","type":"string"}],"internalType":"struct LLMCompletionResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"}]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|