Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -68,28 +68,22 @@ completion:
--prompt "Hello, how are you?" \
--max-tokens 50

chat-og-evm:
chat:
python -m opengradient.cli chat \
--model $(MODEL) \
--messages '[{"role":"user","content":"Tell me a fun fact"}]' \
--max-tokens 150 --network og-evm

chat-base-testnet:
python -m opengradient.cli chat \
--model $(MODEL) \
--messages '[{"role":"user","content":"Tell me a fun fact"}]' \
--max-tokens 150 --network base-testnet
--max-tokens 150

chat-stream:
python -m opengradient.cli chat \
--model $(MODEL) --mode TEE \
--model $(MODEL) \
--messages '[{"role":"user","content":"Tell me a short story"}]' \
--max-tokens 250 \
--stream

chat-tool:
python -m opengradient.cli chat \
--model $(MODEL) --mode TEE \
--model $(MODEL) \
--messages '[{"role":"user","content":"What is the weather in Tokyo?"}]' \
--tools '[{"type":"function","function":{"name":"get_weather","description":"Get weather for a location","parameters":{"type":"object","properties":{"location":{"type":"string"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}}]' \
--max-tokens 100 \
Expand Down
2 changes: 1 addition & 1 deletion docs/opengradient/client/client.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ blockchain private key and optional Model Hub credentials.
#### Constructor

```python
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llmogevm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llmogevm.opengradient.ai')
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llm.opengradient.ai')
```

**Arguments**
Expand Down
2 changes: 1 addition & 1 deletion docs/opengradient/client/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ blockchain private key and optional Model Hub credentials.
#### Constructor

```python
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llmogevm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llmogevm.opengradient.ai')
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llm.opengradient.ai')
```

**Arguments**
Expand Down
2 changes: 1 addition & 1 deletion docs/opengradient/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ blockchain private key and optional Model Hub credentials.
#### Constructor

```python
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llmogevm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llmogevm.opengradient.ai')
def __init__(private_key: str, email: Optional[str] = None, password: Optional[str] = None, twins_api_key: Optional[str] = None, wallet_address: str = None, rpc_url: str = 'https://ogevmdevnet.opengradient.ai', api_url: str = 'https://sdk-devnet.opengradient.ai', contract_address: str = '0x8383C9bD7462F12Eb996DD02F78234C0421A6FaE', og_llm_server_url: Optional[str] = 'https://llm.opengradient.ai', og_llm_streaming_server_url: Optional[str] = 'https://llm.opengradient.ai')
```

**Arguments**
Expand Down
6 changes: 2 additions & 4 deletions examples/run_x402_llm.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@
import opengradient as og
from x402_permit2 import check_permit2_approval

network = "base-testnet"

client = og.Client(
private_key=os.environ.get("OG_PRIVATE_KEY"),
)

check_permit2_approval(client.wallet_address, network)
check_permit2_approval(client.wallet_address)

messages = [
{"role": "user", "content": "What is Python?"},
Expand All @@ -29,6 +27,6 @@
]

result = client.llm.chat(
model=og.TEE_LLM.GPT_4_1_2025_04_14, messages=messages, x402_settlement_mode=og.x402SettlementMode.SETTLE_METADATA, network=network
model=og.TEE_LLM.GPT_4_1_2025_04_14, messages=messages, x402_settlement_mode=og.x402SettlementMode.SETTLE_METADATA
)
print(f"Response: {result.chat_output['content']}")
5 changes: 1 addition & 4 deletions examples/run_x402_llm_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
import opengradient as og
from x402_permit2 import check_permit2_approval

network = "base-testnet"

client = og.Client(
private_key=os.environ.get("OG_PRIVATE_KEY"),
)

check_permit2_approval(client.wallet_address, network)
check_permit2_approval(client.wallet_address)

messages = [
{"role": "user", "content": "What is Python?"},
Expand All @@ -23,7 +21,6 @@
x402_settlement_mode=og.x402SettlementMode.SETTLE_METADATA,
stream=True,
max_tokens=300,
network=network,
)

for chunk in stream:
Expand Down
6 changes: 1 addition & 5 deletions examples/x402_permit2.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

BASE_OPG_ADDRESS = "0x240b09731D96979f50B2C649C9CE10FcF9C7987F"
BASE_SEPOLIA_RPC = "https://sepolia.base.org"
BASE_TESTNET = "base-testnet"
MAX_UINT256 = (1 << 256) - 1

ERC20_ABI = [
Expand Down Expand Up @@ -48,11 +47,8 @@ def get_permit2_allowance(client_address: str) -> int:
).call()


def check_permit2_approval(client_address: str, network: str) -> None:
def check_permit2_approval(client_address: str) -> None:
"""Raise an error if Permit2 approval is missing for base-testnet."""
if network != BASE_TESTNET:
return

allowance = get_permit2_allowance(client_address)
print(f"Current OPG Permit2 allowance: {allowance}")

Expand Down
3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ dependencies = [
"langchain>=0.3.7",
"openai>=1.58.1",
"pydantic>=2.9.2",
"og-test-x402==0.0.9",
"og-test-v2-x402==0.0.6"
"og-test-v2-x402==0.0.9"
]

[project.scripts]
Expand Down
3 changes: 1 addition & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ requests>=2.32.3
langchain>=0.3.7
openai>=1.58.1
pydantic>=2.9.2
og-test-x402==0.0.9
og-test-v2-x402==0.0.6
og-test-v2-x402==0.0.9
15 changes: 1 addition & 14 deletions src/opengradient/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
DEFAULT_OG_FAUCET_URL,
DEFAULT_RPC_URL,
)
from .types import InferenceMode, x402Network, x402SettlementMode
from .types import InferenceMode, x402SettlementMode

OG_CONFIG_FILE = Path.home() / ".opengradient_config.json"

Expand Down Expand Up @@ -74,11 +74,6 @@ def convert(self, value, param, ctx):
"settle-metadata": x402SettlementMode.SETTLE_METADATA,
}

x402Networks = {
"og-evm": x402Network.OG_EVM,
"base-testnet": x402Network.BASE_TESTNET,
}


def initialize_config(ctx):
"""Interactively initialize OpenGradient config"""
Expand Down Expand Up @@ -466,12 +461,6 @@ def print_llm_completion_result(model_cid, tx_hash, llm_output, is_vanilla=True)
default="settle-batch",
help="Settlement mode for x402 payments: settle (hashes only), settle-batch (batched, default), settle-metadata (full data)",
)
@click.option(
"--network",
type=click.Choice(x402Networks.keys()),
default="og-evm",
help="x402 network to use for TEE chat payments: og-evm (default) or base-testnet",
)
@click.option("--stream", is_flag=True, default=False, help="Stream the output from the LLM")
@click.pass_context
def chat(
Expand All @@ -486,7 +475,6 @@ def chat(
tools_file: Optional[Path],
tool_choice: Optional[str],
x402_settlement_mode: Optional[str],
network: str,
stream: bool,
):
"""
Expand Down Expand Up @@ -573,7 +561,6 @@ def chat(
tools=parsed_tools,
tool_choice=tool_choice,
x402_settlement_mode=x402SettlementModes[x402_settlement_mode],
network=x402Networks[network],
stream=stream,
)

Expand Down
Loading