fishr 0.0.1__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.
- fishr-0.0.1/PKG-INFO +154 -0
- fishr-0.0.1/README.md +125 -0
- fishr-0.0.1/pyproject.toml +58 -0
- fishr-0.0.1/setup.cfg +4 -0
- fishr-0.0.1/src/fishr/Base/Conversation.py +395 -0
- fishr-0.0.1/src/fishr/Base/DeepAI.py +385 -0
- fishr-0.0.1/src/fishr/Base/DphnAI.py +207 -0
- fishr-0.0.1/src/fishr/Base/Eris.py +225 -0
- fishr-0.0.1/src/fishr/Base/NoTrack.py +259 -0
- fishr-0.0.1/src/fishr/Base/Noxus.py +390 -0
- fishr-0.0.1/src/fishr/Base/OperaAria.py +469 -0
- fishr-0.0.1/src/fishr/Base/Quillbot.py +243 -0
- fishr-0.0.1/src/fishr/Base/Telnyx.py +268 -0
- fishr-0.0.1/src/fishr/Base/Yqcloud.py +189 -0
- fishr-0.0.1/src/fishr/Base/__init__.py +40 -0
- fishr-0.0.1/src/fishr/Http.py +117 -0
- fishr-0.0.1/src/fishr/Loop.py +13 -0
- fishr-0.0.1/src/fishr/Types.py +248 -0
- fishr-0.0.1/src/fishr/Utils.py +95 -0
- fishr-0.0.1/src/fishr/__init__.py +205 -0
- fishr-0.0.1/src/fishr/__main__.py +39 -0
- fishr-0.0.1/src/fishr/audio/OpenAIFM.py +318 -0
- fishr-0.0.1/src/fishr/audio/TelnyxAudio.py +217 -0
- fishr-0.0.1/src/fishr/audio/Transcode.py +145 -0
- fishr-0.0.1/src/fishr/audio/__init__.py +47 -0
- fishr-0.0.1/src/fishr/chat/__init__.py +3 -0
- fishr-0.0.1/src/fishr/chat/server.py +458 -0
- fishr-0.0.1/src/fishr/client/__init__.py +287 -0
- fishr-0.0.1/src/fishr/client/agents.py +199 -0
- fishr-0.0.1/src/fishr/client/audio.py +222 -0
- fishr-0.0.1/src/fishr/client/completions.py +913 -0
- fishr-0.0.1/src/fishr/client/images.py +94 -0
- fishr-0.0.1/src/fishr/client/routing.py +15 -0
- fishr-0.0.1/src/fishr/client/streams.py +482 -0
- fishr-0.0.1/src/fishr.egg-info/PKG-INFO +154 -0
- fishr-0.0.1/src/fishr.egg-info/SOURCES.txt +38 -0
- fishr-0.0.1/src/fishr.egg-info/dependency_links.txt +1 -0
- fishr-0.0.1/src/fishr.egg-info/entry_points.txt +2 -0
- fishr-0.0.1/src/fishr.egg-info/requires.txt +6 -0
- fishr-0.0.1/src/fishr.egg-info/top_level.txt +1 -0
fishr-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fishr
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: A python library for free LLMs & usable in your python projects. (Grok, Sonnet, GPT)
|
|
5
|
+
Author: fuhnut
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/breedservices/fishr
|
|
8
|
+
Project-URL: Repository, https://github.com/breedservices/fishr
|
|
9
|
+
Project-URL: Issues, https://github.com/breedservices/fishr/issues
|
|
10
|
+
Keywords: llm,ai,grok,gpt,gemini,sonnet,chat,completions,free,no-auth,gpt4free
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Typing :: Typed
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
Requires-Dist: uvloop>=0.22.1; sys_platform != "win32"
|
|
26
|
+
Requires-Dist: primp
|
|
27
|
+
Requires-Dist: msgspec
|
|
28
|
+
Requires-Dist: static-ffmpeg
|
|
29
|
+
|
|
30
|
+
# fishr
|
|
31
|
+
|
|
32
|
+
FREE LLM ACCESS FROM PYTHON. NO KEYS! NO AUTH! NO LIMITS!
|
|
33
|
+
|
|
34
|
+
## Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install fishr
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Quick Start
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from fishr import Client
|
|
44
|
+
|
|
45
|
+
client = Client()
|
|
46
|
+
|
|
47
|
+
# Chat completion
|
|
48
|
+
response = client.chat.completions.create(
|
|
49
|
+
model="noxus/openai",
|
|
50
|
+
messages=[{"role": "user", "content": "Hello!"}],
|
|
51
|
+
)
|
|
52
|
+
print(response.text)
|
|
53
|
+
|
|
54
|
+
# Streaming
|
|
55
|
+
response = client.chat.completions.create(
|
|
56
|
+
model="noxus/openai",
|
|
57
|
+
messages=[{"role": "user", "content": "Tell me a story"}],
|
|
58
|
+
stream=True,
|
|
59
|
+
)
|
|
60
|
+
for chunk in response:
|
|
61
|
+
print(chunk.choices[0].delta.content or "", end="")
|
|
62
|
+
|
|
63
|
+
# Web search
|
|
64
|
+
response = client.chat.completions.create(
|
|
65
|
+
model="noxus/grok-4.3",
|
|
66
|
+
messages=[{"role": "user", "content": "Latest news on SpaceX"}],
|
|
67
|
+
web_search=True,
|
|
68
|
+
)
|
|
69
|
+
print(response.text)
|
|
70
|
+
|
|
71
|
+
# Image generation
|
|
72
|
+
result = client.images.generate(
|
|
73
|
+
model="deepai/image",
|
|
74
|
+
prompt="A cat riding a skateboard",
|
|
75
|
+
)
|
|
76
|
+
print(result.data[0].url)
|
|
77
|
+
|
|
78
|
+
# Agent
|
|
79
|
+
result = client.agents.run(
|
|
80
|
+
model="noxus/openai",
|
|
81
|
+
prompt="Research quantum computing",
|
|
82
|
+
tools=[{"type": "web_search"}],
|
|
83
|
+
)
|
|
84
|
+
print(result.content)
|
|
85
|
+
|
|
86
|
+
# Multi-turn conversation
|
|
87
|
+
conv = client.conversation(model="noxus/openai")
|
|
88
|
+
conv.system("You are a helpful assistant.")
|
|
89
|
+
conv.ask("Remember: 42")
|
|
90
|
+
conv.ask("What number did I say?")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Async
|
|
94
|
+
|
|
95
|
+
```python
|
|
96
|
+
from fishr import AsyncClient
|
|
97
|
+
|
|
98
|
+
client = AsyncClient()
|
|
99
|
+
|
|
100
|
+
response = await client.chat.completions.create(
|
|
101
|
+
model="deepai/standard",
|
|
102
|
+
messages=[{"role": "user", "content": "Hello!"}],
|
|
103
|
+
)
|
|
104
|
+
print(response.text)
|
|
105
|
+
|
|
106
|
+
# Async streaming
|
|
107
|
+
response = await client.chat.completions.create(
|
|
108
|
+
model="opera/aria",
|
|
109
|
+
messages=[{"role": "user", "content": "Tell me a story"}],
|
|
110
|
+
stream=True,
|
|
111
|
+
)
|
|
112
|
+
async for chunk in response:
|
|
113
|
+
print(chunk.choices[0].delta.content or "", end="")
|
|
114
|
+
|
|
115
|
+
# Async conversation
|
|
116
|
+
conv = client.conversation(model="noxus/openai")
|
|
117
|
+
await conv.ask("Remember: 42")
|
|
118
|
+
await conv.ask("What number did I say?")
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Direct Provider Access
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from fishr import OperaAria, Yqcloud
|
|
125
|
+
|
|
126
|
+
# Use a provider directly
|
|
127
|
+
opera = OperaAria()
|
|
128
|
+
result = opera.ask("Hello!", model="opera/aria")
|
|
129
|
+
print(result.content)
|
|
130
|
+
|
|
131
|
+
yqcloud = Yqcloud()
|
|
132
|
+
result = yqcloud.chat([{"role": "user", "content": "Hi!"}])
|
|
133
|
+
print(result.content)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Models
|
|
137
|
+
|
|
138
|
+
Models are specified as `provider/name`:
|
|
139
|
+
|
|
140
|
+
| Provider | Models | Features |
|
|
141
|
+
|----------|--------|----------|
|
|
142
|
+
| **Noxus** | `noxus/openai`, `noxus/google`, `noxus/sonnet-4.6`, `noxus/sonnet-3.5`, `noxus/grok-4.3`, `noxus/perplexity`, `noxus/metaai`, `noxus/qwen` | Web search, images, history, system messages |
|
|
143
|
+
| **DeepAI** | `deepai/standard`, `deepai/online`, `deepai/gemma-4`, `deepai/gemini-2.5-flash-lite`, `deepai/deepseek-v3.2`, `deepai/image` | Web search (online), images, history, system messages |
|
|
144
|
+
| **Quillbot** | `quillbot/quillbot`, `quillbot/quillbot-search` | Web search (quillbot-search), history, system messages |
|
|
145
|
+
| **NoTrack** | `notrack/fast`, `notrack/standard`, `notrack/reasoning` | History |
|
|
146
|
+
| **DphnAI** | `dphnai/24b`, `dphnai/6b` | History, system messages |
|
|
147
|
+
| **Yqcloud** | `yqcloud/gpt-4` | History, system messages |
|
|
148
|
+
| **Opera Aria** | `opera/aria` | Images, history, system messages |
|
|
149
|
+
|
|
150
|
+
The provider prefix is optional for Noxus (default).
|
|
151
|
+
|
|
152
|
+
## Requirements
|
|
153
|
+
|
|
154
|
+
- Python >= 3.11
|
fishr-0.0.1/README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# fishr
|
|
2
|
+
|
|
3
|
+
FREE LLM ACCESS FROM PYTHON. NO KEYS! NO AUTH! NO LIMITS!
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install fishr
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from fishr import Client
|
|
15
|
+
|
|
16
|
+
client = Client()
|
|
17
|
+
|
|
18
|
+
# Chat completion
|
|
19
|
+
response = client.chat.completions.create(
|
|
20
|
+
model="noxus/openai",
|
|
21
|
+
messages=[{"role": "user", "content": "Hello!"}],
|
|
22
|
+
)
|
|
23
|
+
print(response.text)
|
|
24
|
+
|
|
25
|
+
# Streaming
|
|
26
|
+
response = client.chat.completions.create(
|
|
27
|
+
model="noxus/openai",
|
|
28
|
+
messages=[{"role": "user", "content": "Tell me a story"}],
|
|
29
|
+
stream=True,
|
|
30
|
+
)
|
|
31
|
+
for chunk in response:
|
|
32
|
+
print(chunk.choices[0].delta.content or "", end="")
|
|
33
|
+
|
|
34
|
+
# Web search
|
|
35
|
+
response = client.chat.completions.create(
|
|
36
|
+
model="noxus/grok-4.3",
|
|
37
|
+
messages=[{"role": "user", "content": "Latest news on SpaceX"}],
|
|
38
|
+
web_search=True,
|
|
39
|
+
)
|
|
40
|
+
print(response.text)
|
|
41
|
+
|
|
42
|
+
# Image generation
|
|
43
|
+
result = client.images.generate(
|
|
44
|
+
model="deepai/image",
|
|
45
|
+
prompt="A cat riding a skateboard",
|
|
46
|
+
)
|
|
47
|
+
print(result.data[0].url)
|
|
48
|
+
|
|
49
|
+
# Agent
|
|
50
|
+
result = client.agents.run(
|
|
51
|
+
model="noxus/openai",
|
|
52
|
+
prompt="Research quantum computing",
|
|
53
|
+
tools=[{"type": "web_search"}],
|
|
54
|
+
)
|
|
55
|
+
print(result.content)
|
|
56
|
+
|
|
57
|
+
# Multi-turn conversation
|
|
58
|
+
conv = client.conversation(model="noxus/openai")
|
|
59
|
+
conv.system("You are a helpful assistant.")
|
|
60
|
+
conv.ask("Remember: 42")
|
|
61
|
+
conv.ask("What number did I say?")
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Async
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
from fishr import AsyncClient
|
|
68
|
+
|
|
69
|
+
client = AsyncClient()
|
|
70
|
+
|
|
71
|
+
response = await client.chat.completions.create(
|
|
72
|
+
model="deepai/standard",
|
|
73
|
+
messages=[{"role": "user", "content": "Hello!"}],
|
|
74
|
+
)
|
|
75
|
+
print(response.text)
|
|
76
|
+
|
|
77
|
+
# Async streaming
|
|
78
|
+
response = await client.chat.completions.create(
|
|
79
|
+
model="opera/aria",
|
|
80
|
+
messages=[{"role": "user", "content": "Tell me a story"}],
|
|
81
|
+
stream=True,
|
|
82
|
+
)
|
|
83
|
+
async for chunk in response:
|
|
84
|
+
print(chunk.choices[0].delta.content or "", end="")
|
|
85
|
+
|
|
86
|
+
# Async conversation
|
|
87
|
+
conv = client.conversation(model="noxus/openai")
|
|
88
|
+
await conv.ask("Remember: 42")
|
|
89
|
+
await conv.ask("What number did I say?")
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Direct Provider Access
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
from fishr import OperaAria, Yqcloud
|
|
96
|
+
|
|
97
|
+
# Use a provider directly
|
|
98
|
+
opera = OperaAria()
|
|
99
|
+
result = opera.ask("Hello!", model="opera/aria")
|
|
100
|
+
print(result.content)
|
|
101
|
+
|
|
102
|
+
yqcloud = Yqcloud()
|
|
103
|
+
result = yqcloud.chat([{"role": "user", "content": "Hi!"}])
|
|
104
|
+
print(result.content)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Models
|
|
108
|
+
|
|
109
|
+
Models are specified as `provider/name`:
|
|
110
|
+
|
|
111
|
+
| Provider | Models | Features |
|
|
112
|
+
|----------|--------|----------|
|
|
113
|
+
| **Noxus** | `noxus/openai`, `noxus/google`, `noxus/sonnet-4.6`, `noxus/sonnet-3.5`, `noxus/grok-4.3`, `noxus/perplexity`, `noxus/metaai`, `noxus/qwen` | Web search, images, history, system messages |
|
|
114
|
+
| **DeepAI** | `deepai/standard`, `deepai/online`, `deepai/gemma-4`, `deepai/gemini-2.5-flash-lite`, `deepai/deepseek-v3.2`, `deepai/image` | Web search (online), images, history, system messages |
|
|
115
|
+
| **Quillbot** | `quillbot/quillbot`, `quillbot/quillbot-search` | Web search (quillbot-search), history, system messages |
|
|
116
|
+
| **NoTrack** | `notrack/fast`, `notrack/standard`, `notrack/reasoning` | History |
|
|
117
|
+
| **DphnAI** | `dphnai/24b`, `dphnai/6b` | History, system messages |
|
|
118
|
+
| **Yqcloud** | `yqcloud/gpt-4` | History, system messages |
|
|
119
|
+
| **Opera Aria** | `opera/aria` | Images, history, system messages |
|
|
120
|
+
|
|
121
|
+
The provider prefix is optional for Noxus (default).
|
|
122
|
+
|
|
123
|
+
## Requirements
|
|
124
|
+
|
|
125
|
+
- Python >= 3.11
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "fishr"
|
|
3
|
+
version = "0.0.1"
|
|
4
|
+
description = "A python library for free LLMs & usable in your python projects. (Grok, Sonnet, GPT)"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = { text = "MIT" }
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "fuhnut" }
|
|
10
|
+
]
|
|
11
|
+
keywords = [
|
|
12
|
+
"llm",
|
|
13
|
+
"ai",
|
|
14
|
+
"grok",
|
|
15
|
+
"gpt",
|
|
16
|
+
"gemini",
|
|
17
|
+
"sonnet",
|
|
18
|
+
"chat",
|
|
19
|
+
"completions",
|
|
20
|
+
"free",
|
|
21
|
+
"no-auth",
|
|
22
|
+
"gpt4free",
|
|
23
|
+
]
|
|
24
|
+
classifiers = [
|
|
25
|
+
"Development Status :: 4 - Beta",
|
|
26
|
+
"Intended Audience :: Developers",
|
|
27
|
+
"License :: OSI Approved :: MIT License",
|
|
28
|
+
"Operating System :: OS Independent",
|
|
29
|
+
"Programming Language :: Python :: 3",
|
|
30
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
31
|
+
"Programming Language :: Python :: 3.11",
|
|
32
|
+
"Programming Language :: Python :: 3.12",
|
|
33
|
+
"Programming Language :: Python :: 3.13",
|
|
34
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
35
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
36
|
+
"Typing :: Typed",
|
|
37
|
+
]
|
|
38
|
+
dependencies = [
|
|
39
|
+
"uvloop>=0.22.1 ; sys_platform != 'win32'",
|
|
40
|
+
"primp",
|
|
41
|
+
"msgspec",
|
|
42
|
+
"static-ffmpeg",
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
[project.urls]
|
|
46
|
+
Homepage = "https://github.com/breedservices/fishr"
|
|
47
|
+
Repository = "https://github.com/breedservices/fishr"
|
|
48
|
+
Issues = "https://github.com/breedservices/fishr/issues"
|
|
49
|
+
|
|
50
|
+
[project.scripts]
|
|
51
|
+
fishr = "fishr.__main__:main"
|
|
52
|
+
|
|
53
|
+
[build-system]
|
|
54
|
+
requires = ["setuptools>=68"]
|
|
55
|
+
build-backend = "setuptools.build_meta"
|
|
56
|
+
|
|
57
|
+
[tool.setuptools.packages.find]
|
|
58
|
+
where = ["src"]
|
fishr-0.0.1/setup.cfg
ADDED