Ryzenth 1.8.2__tar.gz → 1.8.4__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.
- {ryzenth-1.8.2 → ryzenth-1.8.4}/PKG-INFO +10 -3
- {ryzenth-1.8.2 → ryzenth-1.8.4}/README.md +9 -2
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth/__version__.py +1 -1
- ryzenth-1.8.4/Ryzenth/_asynchisded.py +124 -0
- ryzenth-1.8.4/Ryzenth/_synchisded.py +125 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth/types/__init__.py +3 -2
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth.egg-info/PKG-INFO +10 -3
- ryzenth-1.8.2/Ryzenth/_asynchisded.py +0 -62
- ryzenth-1.8.2/Ryzenth/_synchisded.py +0 -61
- {ryzenth-1.8.2 → ryzenth-1.8.4}/LICENSE +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth/__init__.py +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth/ryzenth_client.py +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth.egg-info/SOURCES.txt +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth.egg-info/dependency_links.txt +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth.egg-info/requires.txt +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/Ryzenth.egg-info/top_level.txt +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/setup.cfg +0 -0
- {ryzenth-1.8.2 → ryzenth-1.8.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: Ryzenth
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.4
|
4
4
|
Summary: Ryzenth Python Wrapper For Perfomance
|
5
5
|
Author: TeamKillerX
|
6
6
|
License: MIT
|
@@ -53,6 +53,13 @@ Dynamic: requires-python
|
|
53
53
|
Dynamic: summary
|
54
54
|
|
55
55
|
# Ryzenth Library
|
56
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
57
|
+
[](https://github.com/TeamKillerX/Ryzenth/graphs/commit-activity)
|
58
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
59
|
+
[](https://github.com/TeamKillerX/Ryzenth/blob/main/LICENSE)
|
60
|
+
[](https://makeapullrequest.com)
|
61
|
+
[](https://pypi.org/project/Ryzenth)
|
62
|
+
[](https://results.pre-commit.ci/latest/github/TeamKillerX/Ryzenth/main)
|
56
63
|
|
57
64
|
**Ryzenth** is a powerful and flexible Python SDK for interacting with the new **Ryzenth API** a successor to the AkenoX API supporting both synchronous and asynchronous workflows out of the box.
|
58
65
|
|
@@ -79,9 +86,9 @@ pip install ryzenth[fast]
|
|
79
86
|
from Ryzenth import ApiKeyFrom
|
80
87
|
from Ryzenth.types import QueryParameter
|
81
88
|
|
82
|
-
ryz = ApiKeyFrom("
|
89
|
+
ryz = ApiKeyFrom("your-api-key")
|
83
90
|
|
84
|
-
|
91
|
+
await ryz.aio.send_message(
|
85
92
|
"hybrid",
|
86
93
|
QueryParameter(
|
87
94
|
query="hello world!"
|
@@ -1,4 +1,11 @@
|
|
1
1
|
# Ryzenth Library
|
2
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
3
|
+
[](https://github.com/TeamKillerX/Ryzenth/graphs/commit-activity)
|
4
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
5
|
+
[](https://github.com/TeamKillerX/Ryzenth/blob/main/LICENSE)
|
6
|
+
[](https://makeapullrequest.com)
|
7
|
+
[](https://pypi.org/project/Ryzenth)
|
8
|
+
[](https://results.pre-commit.ci/latest/github/TeamKillerX/Ryzenth/main)
|
2
9
|
|
3
10
|
**Ryzenth** is a powerful and flexible Python SDK for interacting with the new **Ryzenth API** a successor to the AkenoX API supporting both synchronous and asynchronous workflows out of the box.
|
4
11
|
|
@@ -25,9 +32,9 @@ pip install ryzenth[fast]
|
|
25
32
|
from Ryzenth import ApiKeyFrom
|
26
33
|
from Ryzenth.types import QueryParameter
|
27
34
|
|
28
|
-
ryz = ApiKeyFrom("
|
35
|
+
ryz = ApiKeyFrom("your-api-key")
|
29
36
|
|
30
|
-
|
37
|
+
await ryz.aio.send_message(
|
31
38
|
"hybrid",
|
32
39
|
QueryParameter(
|
33
40
|
query="hello world!"
|
@@ -0,0 +1,124 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# Copyright 2019-2025 (c) Randy W @xtdevs, @xtsea
|
4
|
+
#
|
5
|
+
# from : https://github.com/TeamKillerX
|
6
|
+
# Channel : @RendyProjects
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Affero General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Affero General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Affero General Public License
|
18
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
import logging
|
21
|
+
|
22
|
+
import httpx
|
23
|
+
|
24
|
+
from Ryzenth.types import QueryParameter
|
25
|
+
|
26
|
+
LOGS = logging.getLogger("[Ryzenth] async")
|
27
|
+
|
28
|
+
class RyzenthXAsync:
|
29
|
+
def __init__(self, api_key: str, base_url: str = "https://randydev-ryu-js.hf.space/api"):
|
30
|
+
self.api_key = api_key
|
31
|
+
self.base_url = base_url.rstrip("/")
|
32
|
+
self.headers = {"x-api-key": self.api_key}
|
33
|
+
self.images = self.ImagesAsync(self)
|
34
|
+
|
35
|
+
class ImagesAsync:
|
36
|
+
def __init__(self, parent):
|
37
|
+
self.parent = parent
|
38
|
+
|
39
|
+
async def generate(self, params: QueryParameter):
|
40
|
+
url = f"{self.parent.base_url}/v1/flux/black-forest-labs/flux-1-schnell"
|
41
|
+
async with httpx.AsyncClient() as client:
|
42
|
+
try:
|
43
|
+
response = await client.get(url, params=params.dict(), headers=self.parent.headers, timeout=30)
|
44
|
+
response.raise_for_status()
|
45
|
+
return response.content
|
46
|
+
except httpx.HTTPError as e:
|
47
|
+
LOGS.error(f"[ASYNC] Error: {str(e)}")
|
48
|
+
return None
|
49
|
+
|
50
|
+
async def send_downloader(self, switch_name: str = None, params: QueryParameter = None, list_key=False):
|
51
|
+
dl_dict = {
|
52
|
+
"teraboxv4": "terabox-v4",
|
53
|
+
"twitterv3": "twitter-v3",
|
54
|
+
"xnxxinfov2": "xnxx-info-v2",
|
55
|
+
"instagramv4": "instagram-v4",
|
56
|
+
"instagramv3": "instagram-v3",
|
57
|
+
"instagramv2": "instagram-v2",
|
58
|
+
"instagram": "instagram",
|
59
|
+
"twitter": "twitter",
|
60
|
+
"tiktok": "tiktok",
|
61
|
+
"tiktokv2": "tiktok-v2",
|
62
|
+
"facebook": "fb",
|
63
|
+
"snapsave": "snapsave",
|
64
|
+
"savefrom": "savefrom"
|
65
|
+
}
|
66
|
+
if list_key:
|
67
|
+
return list(dl_dict.keys())
|
68
|
+
|
69
|
+
if not switch_name:
|
70
|
+
raise ValueError("`switch_name` is required. Use `list_key=True` to see all valid options.")
|
71
|
+
|
72
|
+
model_name = dl_dict.get(switch_name)
|
73
|
+
if not model_name:
|
74
|
+
raise ValueError(f"Invalid switch_name: {switch_name}")
|
75
|
+
|
76
|
+
async with httpx.AsyncClient() as client:
|
77
|
+
try:
|
78
|
+
response = await client.get(
|
79
|
+
f"{self.base_url}/v1/dl/{model_name}",
|
80
|
+
params=params.dict(),
|
81
|
+
headers=self.headers,
|
82
|
+
timeout=10
|
83
|
+
)
|
84
|
+
response.raise_for_status()
|
85
|
+
return response.json()
|
86
|
+
except httpx.HTTPError as e:
|
87
|
+
LOGS.error(f"[ASYNC] Error: {str(e)}")
|
88
|
+
return None
|
89
|
+
|
90
|
+
async def send_message(self, model: str = None, params: QueryParameter = None, list_key=False):
|
91
|
+
model_dict = {
|
92
|
+
"hybrid": "AkenoX-1.9-Hybrid",
|
93
|
+
"melayu": "lu-melayu",
|
94
|
+
"nocodefou": "nocodefou",
|
95
|
+
"mia": "mia-khalifah",
|
96
|
+
"curlmcode": "curl-command-code",
|
97
|
+
"quotessad": "quotes-sad",
|
98
|
+
"quoteslucu": "quotes-lucu",
|
99
|
+
"lirikend": "lirik-end",
|
100
|
+
"alsholawat": "al-sholawat"
|
101
|
+
}
|
102
|
+
if list_key:
|
103
|
+
return list(model_dict.keys())
|
104
|
+
|
105
|
+
if not model:
|
106
|
+
raise ValueError("`model` is required. Use `list_key=True` to see all valid options.")
|
107
|
+
|
108
|
+
model_param = model_dict.get(model)
|
109
|
+
if not model_param:
|
110
|
+
raise ValueError(f"Invalid model name: {model}")
|
111
|
+
|
112
|
+
async with httpx.AsyncClient() as client:
|
113
|
+
try:
|
114
|
+
response = await client.get(
|
115
|
+
f"{self.base_url}/v1/ai/akenox/{model_param}",
|
116
|
+
params=params.dict(),
|
117
|
+
headers=self.headers,
|
118
|
+
timeout=10
|
119
|
+
)
|
120
|
+
response.raise_for_status()
|
121
|
+
return response.json()
|
122
|
+
except httpx.HTTPError as e:
|
123
|
+
LOGS.error(f"[ASYNC] Error: {str(e)}")
|
124
|
+
return None
|
@@ -0,0 +1,125 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# Copyright 2019-2025 (c) Randy W @xtdevs, @xtsea
|
4
|
+
#
|
5
|
+
# from : https://github.com/TeamKillerX
|
6
|
+
# Channel : @RendyProjects
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU Affero General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU Affero General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU Affero General Public License
|
18
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
import logging
|
21
|
+
|
22
|
+
import httpx
|
23
|
+
|
24
|
+
from Ryzenth.types import QueryParameter
|
25
|
+
|
26
|
+
LOGS = logging.getLogger("[Ryzenth] sync")
|
27
|
+
|
28
|
+
class RyzenthXSync:
|
29
|
+
def __init__(self, api_key: str, base_url: str = "https://randydev-ryu-js.hf.space/api"):
|
30
|
+
self.api_key = api_key
|
31
|
+
self.base_url = base_url.rstrip("/")
|
32
|
+
self.headers = {"x-api-key": self.api_key}
|
33
|
+
self.images = self.ImagesSync(self)
|
34
|
+
|
35
|
+
class ImagesSync:
|
36
|
+
def __init__(self, parent):
|
37
|
+
self.parent = parent
|
38
|
+
|
39
|
+
def generate(self, params: QueryParameter):
|
40
|
+
url = f"{self.parent.base_url}/v1/flux/black-forest-labs/flux-1-schnell"
|
41
|
+
try:
|
42
|
+
response = httpx.get(
|
43
|
+
url,
|
44
|
+
params=params.dict(),
|
45
|
+
headers=self.parent.headers,
|
46
|
+
timeout=30
|
47
|
+
)
|
48
|
+
response.raise_for_status()
|
49
|
+
return response.content
|
50
|
+
except httpx.HTTPError as e:
|
51
|
+
LOGS.error(f"[SYNC] Error fetching from images {e}")
|
52
|
+
return None
|
53
|
+
|
54
|
+
def send_downloader(self, switch_name: str = None, params: QueryParameter = None, list_key=False):
|
55
|
+
dl_dict = {
|
56
|
+
"teraboxv4": "terabox-v4",
|
57
|
+
"twitterv3": "twitter-v3",
|
58
|
+
"xnxxinfov2": "xnxx-info-v2",
|
59
|
+
"instagramv4": "instagram-v4",
|
60
|
+
"instagramv3": "instagram-v3",
|
61
|
+
"instagramv2": "instagram-v2",
|
62
|
+
"instagram": "instagram",
|
63
|
+
"twitter": "twitter",
|
64
|
+
"tiktok": "tiktok",
|
65
|
+
"tiktokv2": "tiktok-v2",
|
66
|
+
"facebook": "fb",
|
67
|
+
"snapsave": "snapsave",
|
68
|
+
"savefrom": "savefrom"
|
69
|
+
}
|
70
|
+
if list_key:
|
71
|
+
return list(dl_dict.keys())
|
72
|
+
|
73
|
+
if not switch_name:
|
74
|
+
raise ValueError("`switch_name` is required. Use `list_key=True` to see all valid options.")
|
75
|
+
|
76
|
+
model_name = dl_dict.get(switch_name)
|
77
|
+
if not model_name:
|
78
|
+
raise ValueError(f"Invalid switch_name: {switch_name}")
|
79
|
+
try:
|
80
|
+
response = httpx.get(
|
81
|
+
f"{self.base_url}/v1/dl/{model_name}",
|
82
|
+
params=params.dict(),
|
83
|
+
headers=self.headers,
|
84
|
+
timeout=10
|
85
|
+
)
|
86
|
+
response.raise_for_status()
|
87
|
+
return response.json()
|
88
|
+
except httpx.HTTPError as e:
|
89
|
+
LOGS.error(f"[SYNC] Error fetching from downloader {e}")
|
90
|
+
return None
|
91
|
+
|
92
|
+
def send_message(self, model: str = None, params: QueryParameter = None, list_key=False):
|
93
|
+
model_dict = {
|
94
|
+
"hybrid": "AkenoX-1.9-Hybrid",
|
95
|
+
"melayu": "lu-melayu",
|
96
|
+
"nocodefou": "nocodefou",
|
97
|
+
"mia": "mia-khalifah",
|
98
|
+
"curlmcode": "curl-command-code",
|
99
|
+
"quotessad": "quotes-sad",
|
100
|
+
"quoteslucu": "quotes-lucu",
|
101
|
+
"lirikend": "lirik-end",
|
102
|
+
"alsholawat": "al-sholawat"
|
103
|
+
}
|
104
|
+
if list_key:
|
105
|
+
return list(model_dict.keys())
|
106
|
+
|
107
|
+
if not model:
|
108
|
+
raise ValueError("`model` is required. Use `list_key=True` to see all valid options.")
|
109
|
+
|
110
|
+
model_param = model_dict.get(model)
|
111
|
+
if not model_param:
|
112
|
+
raise ValueError(f"Invalid model name: {model}")
|
113
|
+
|
114
|
+
try:
|
115
|
+
response = httpx.get(
|
116
|
+
f"{self.base_url}/v1/ai/akenox/{model_param}",
|
117
|
+
params=params.dict(),
|
118
|
+
headers=self.headers,
|
119
|
+
timeout=10
|
120
|
+
)
|
121
|
+
response.raise_for_status()
|
122
|
+
return response.json()
|
123
|
+
except httpx.HTTPError as e:
|
124
|
+
LOGS.error(f"[SYNC] Error fetching from akenox: {e}")
|
125
|
+
return None
|
@@ -18,10 +18,11 @@
|
|
18
18
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
19
19
|
|
20
20
|
|
21
|
-
from typing import Optional
|
21
|
+
from typing import Any, Optional
|
22
22
|
|
23
23
|
from pydantic import BaseModel
|
24
24
|
|
25
25
|
|
26
26
|
class QueryParameter(BaseModel):
|
27
|
-
query: str
|
27
|
+
query: Optional[str] = None
|
28
|
+
url: Optional[str] = None
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: Ryzenth
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.4
|
4
4
|
Summary: Ryzenth Python Wrapper For Perfomance
|
5
5
|
Author: TeamKillerX
|
6
6
|
License: MIT
|
@@ -53,6 +53,13 @@ Dynamic: requires-python
|
|
53
53
|
Dynamic: summary
|
54
54
|
|
55
55
|
# Ryzenth Library
|
56
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
57
|
+
[](https://github.com/TeamKillerX/Ryzenth/graphs/commit-activity)
|
58
|
+
[](https://github.com/TeamKillerX/Ryzenth)
|
59
|
+
[](https://github.com/TeamKillerX/Ryzenth/blob/main/LICENSE)
|
60
|
+
[](https://makeapullrequest.com)
|
61
|
+
[](https://pypi.org/project/Ryzenth)
|
62
|
+
[](https://results.pre-commit.ci/latest/github/TeamKillerX/Ryzenth/main)
|
56
63
|
|
57
64
|
**Ryzenth** is a powerful and flexible Python SDK for interacting with the new **Ryzenth API** a successor to the AkenoX API supporting both synchronous and asynchronous workflows out of the box.
|
58
65
|
|
@@ -79,9 +86,9 @@ pip install ryzenth[fast]
|
|
79
86
|
from Ryzenth import ApiKeyFrom
|
80
87
|
from Ryzenth.types import QueryParameter
|
81
88
|
|
82
|
-
ryz = ApiKeyFrom("
|
89
|
+
ryz = ApiKeyFrom("your-api-key")
|
83
90
|
|
84
|
-
|
91
|
+
await ryz.aio.send_message(
|
85
92
|
"hybrid",
|
86
93
|
QueryParameter(
|
87
94
|
query="hello world!"
|
@@ -1,62 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# Copyright 2019-2025 (c) Randy W @xtdevs, @xtsea
|
4
|
-
#
|
5
|
-
# from : https://github.com/TeamKillerX
|
6
|
-
# Channel : @RendyProjects
|
7
|
-
# This program is free software: you can redistribute it and/or modify
|
8
|
-
# it under the terms of the GNU Affero General Public License as published by
|
9
|
-
# the Free Software Foundation, either version 3 of the License, or
|
10
|
-
# (at your option) any later version.
|
11
|
-
#
|
12
|
-
# This program is distributed in the hope that it will be useful,
|
13
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
# GNU Affero General Public License for more details.
|
16
|
-
#
|
17
|
-
# You should have received a copy of the GNU Affero General Public License
|
18
|
-
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
19
|
-
|
20
|
-
import logging
|
21
|
-
|
22
|
-
import httpx
|
23
|
-
|
24
|
-
from Ryzenth.types import QueryParameter
|
25
|
-
|
26
|
-
LOGS = logging.getLogger("[Ryzenth] async")
|
27
|
-
|
28
|
-
class RyzenthXAsync:
|
29
|
-
def __init__(self, api_key: str, base_url: str = "https://randydev-ryu-js.hf.space/api"):
|
30
|
-
self.api_key = api_key
|
31
|
-
self.base_url = base_url.rstrip("/")
|
32
|
-
self.headers = {"x-api-key": self.api_key}
|
33
|
-
|
34
|
-
async def send_message(self, model: str, params: QueryParameter):
|
35
|
-
model_dict = {
|
36
|
-
"hybrid": "AkenoX-1.9-Hybrid",
|
37
|
-
"melayu": "lu-melayu",
|
38
|
-
"nocodefou": "nocodefou",
|
39
|
-
"mia": "mia-khalifah",
|
40
|
-
"curlmcode": "curl-command-code",
|
41
|
-
"quotessad": "quotes-sad",
|
42
|
-
"quoteslucu": "quotes-lucu",
|
43
|
-
"lirikend": "lirik-end",
|
44
|
-
"alsholawat": "al-sholawat"
|
45
|
-
}
|
46
|
-
model_param = model_dict.get(model)
|
47
|
-
if not model_param:
|
48
|
-
raise ValueError(f"Invalid model name: {model}")
|
49
|
-
|
50
|
-
async with httpx.AsyncClient() as client:
|
51
|
-
try:
|
52
|
-
response = await client.get(
|
53
|
-
f"{self.base_url}/v1/ai/akenox/{model_param}",
|
54
|
-
params=params.dict(),
|
55
|
-
headers=self.headers,
|
56
|
-
timeout=10
|
57
|
-
)
|
58
|
-
response.raise_for_status()
|
59
|
-
return response.json()
|
60
|
-
except httpx.HTTPError as e:
|
61
|
-
LOGS.error(f"[ASYNC] Error: {str(e)}")
|
62
|
-
return None
|
@@ -1,61 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# Copyright 2019-2025 (c) Randy W @xtdevs, @xtsea
|
4
|
-
#
|
5
|
-
# from : https://github.com/TeamKillerX
|
6
|
-
# Channel : @RendyProjects
|
7
|
-
# This program is free software: you can redistribute it and/or modify
|
8
|
-
# it under the terms of the GNU Affero General Public License as published by
|
9
|
-
# the Free Software Foundation, either version 3 of the License, or
|
10
|
-
# (at your option) any later version.
|
11
|
-
#
|
12
|
-
# This program is distributed in the hope that it will be useful,
|
13
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
# GNU Affero General Public License for more details.
|
16
|
-
#
|
17
|
-
# You should have received a copy of the GNU Affero General Public License
|
18
|
-
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
19
|
-
|
20
|
-
import logging
|
21
|
-
|
22
|
-
import httpx
|
23
|
-
|
24
|
-
from Ryzenth.types import QueryParameter
|
25
|
-
|
26
|
-
LOGS = logging.getLogger("[Ryzenth] sync")
|
27
|
-
|
28
|
-
class RyzenthXSync:
|
29
|
-
def __init__(self, api_key: str, base_url: str = "https://randydev-ryu-js.hf.space/api"):
|
30
|
-
self.api_key = api_key
|
31
|
-
self.base_url = base_url.rstrip("/")
|
32
|
-
self.headers = {"x-api-key": self.api_key}
|
33
|
-
|
34
|
-
def send_message(self, model: str, params: QueryParameter):
|
35
|
-
model_dict = {
|
36
|
-
"hybrid": "AkenoX-1.9-Hybrid",
|
37
|
-
"melayu": "lu-melayu",
|
38
|
-
"nocodefou": "nocodefou",
|
39
|
-
"mia": "mia-khalifah",
|
40
|
-
"curlmcode": "curl-command-code",
|
41
|
-
"quotessad": "quotes-sad",
|
42
|
-
"quoteslucu": "quotes-lucu",
|
43
|
-
"lirikend": "lirik-end",
|
44
|
-
"alsholawat": "al-sholawat"
|
45
|
-
}
|
46
|
-
model_param = model_dict.get(model)
|
47
|
-
if not model_param:
|
48
|
-
raise ValueError(f"Invalid model name: {model}")
|
49
|
-
|
50
|
-
try:
|
51
|
-
response = httpx.get(
|
52
|
-
f"{self.base_url}/v1/ai/akenox/{model_param}",
|
53
|
-
params=params.dict(),
|
54
|
-
headers=self.headers,
|
55
|
-
timeout=10
|
56
|
-
)
|
57
|
-
response.raise_for_status()
|
58
|
-
return response.json()
|
59
|
-
except httpx.HTTPError as e:
|
60
|
-
LOGS.error(f"[SYNC] Error fetching from model '{model_param}': {e}")
|
61
|
-
return None
|
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
|