Spaces:
Runtime error
Runtime error
Upload 13 files
Browse files- CONTRIBUTING.md +1 -0
- LICENSE +21 -0
- MANIFEST.in +2 -0
- README.md +309 -10
- README.zh_CN.md +160 -0
- README.zh_TW.md +209 -0
- app.spec +51 -0
- bump.py +135 -0
- project.toml +4 -0
- requirements.in +33 -0
- requirements.txt +592 -0
- run.py +12 -0
- setup.py +52 -0
CONTRIBUTING.md
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
We are open to any contribution as well.
|
LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2024 Onur ULUSOY
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
MANIFEST.in
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
include gpt_computer_assistant/utils/media/*
|
2 |
+
include requirements.txt
|
README.md
CHANGED
@@ -1,10 +1,309 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<p align="center">
|
2 |
+
<a href="#">
|
3 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/deeeb463-c161-4fc6-8407-71c3d8b7defe" alt="Logo" >
|
4 |
+
</a>
|
5 |
+
<br>
|
6 |
+
<a href="#">
|
7 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/36714716-6990-40b0-84d5-cd7432811bcb" alt="Logo" >
|
8 |
+
</a>
|
9 |
+
|
10 |
+
<h3 align="center">GPT Computer Assistant</h3>
|
11 |
+
<p align="center">
|
12 |
+
<a href="https://discord.gg/qApFmWMt8x"><img alt="Static Badge" src="https://img.shields.io/badge/Discord-Join?style=social&logo=discord" width=150></a>
|
13 |
+
</p>
|
14 |
+
|
15 |
+
<p align="center">
|
16 |
+
gpt-4o for windows, macos and ubuntu
|
17 |
+
<br />
|
18 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki"><strong>Documentation</strong></a>
|
19 |
+
.
|
20 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/#Capabilities"><strong>Explore the capabilities »</strong></a>
|
21 |
+
<br />
|
22 |
+
</p>
|
23 |
+
<br>
|
24 |
+
|
25 |
+
<p align="center">
|
26 |
+
<a href="https://www.python.org/">
|
27 |
+
<img src="https://img.shields.io/badge/Made%20with-Python-1f425f.svg" alt="Made_with_python">
|
28 |
+
</a>
|
29 |
+
.
|
30 |
+
<img src="https://static.pepy.tech/personalized-badge/gpt-computer-assistant?period=total&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20Downloads" alt="pypi_downloads">
|
31 |
+
</p>
|
32 |
+
|
33 |
+
|
34 |
+
<p align="center">
|
35 |
+
<a href="https://x.com/GPTCompAsst"><img alt="Static Badge" src="https://img.shields.io/twitter/follow/GPTCompAsst?style=social" width=160></a>
|
36 |
+
</p>
|
37 |
+
|
38 |
+
|
39 |
+
|ENGLISH|[简体中文](README.zh_CN.md)|[正體中文](README.zh_TW.md)
|
40 |
+
|
41 |
+
# GPT Computer Assistant
|
42 |
+
Hi, this is an alternative work for providing ChatGPT MacOS app to Windows and Linux. In this way this is a fresh and stable work. You can easily install as Python library for this time but we will prepare a pipeline for providing native install scripts (.exe).
|
43 |
+
|
44 |
+
Powered by <a href="https://github.com/Upsonic/Tiger"><strong>Upsonic Tiger 🐅</strong></a> A function hub for llm agents.
|
45 |
+
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
## Installation and Run
|
50 |
+
Needed >= Python 3.9
|
51 |
+
```console
|
52 |
+
pip3 install 'gpt-computer-assistant[base]'
|
53 |
+
```
|
54 |
+
|
55 |
+
```console
|
56 |
+
computerassistant
|
57 |
+
```
|
58 |
+
|
59 |
+
### Wake Word | NEW
|
60 |
+
<details>
|
61 |
+
|
62 |
+
|
63 |
+
We have added Pvporcupine integration. To use it, you need to install an additional library:
|
64 |
+
|
65 |
+
```console
|
66 |
+
pip3 install 'gpt-computer-assistant[wakeword]'
|
67 |
+
```
|
68 |
+
|
69 |
+
After that, please enter your [Pvporcupine](https://picovoice.ai/) API key and enable the wake word feature.
|
70 |
+
</details>
|
71 |
+
|
72 |
+
<p align="center">
|
73 |
+
<br>
|
74 |
+
<br>
|
75 |
+
<br>
|
76 |
+
|
77 |
+
</p>
|
78 |
+
|
79 |
+
|
80 |
+
<p align="center">
|
81 |
+
<a href="#">
|
82 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/5c6b7063-3d9b-4ea6-befa-ce15d69fcd43" alt="Logo" >
|
83 |
+
</a>
|
84 |
+
</p>
|
85 |
+
|
86 |
+
|
87 |
+
### Agent Infrastructure
|
88 |
+
|
89 |
+
With this way you can create `crewai` agents and using it into gpt-computer-assistant gui and tools.
|
90 |
+
|
91 |
+
|
92 |
+
```console
|
93 |
+
pip3 install 'gpt-computer-assistant[base]'
|
94 |
+
pip3 install 'gpt-computer-assistant[agentic]'
|
95 |
+
```
|
96 |
+
|
97 |
+
```python
|
98 |
+
from gpt_computer_assistant import Agent, start
|
99 |
+
|
100 |
+
manager = Agent(
|
101 |
+
role='Project Manager',
|
102 |
+
goal='understands project needs and assist coder',
|
103 |
+
backstory="""You're a manager at a large company.""",
|
104 |
+
)
|
105 |
+
|
106 |
+
coder = Agent(
|
107 |
+
role='Senior Python Coder',
|
108 |
+
goal='writing python scripts and copying to clipboard',
|
109 |
+
backstory="""You're a python developer at a large company.""",
|
110 |
+
)
|
111 |
+
|
112 |
+
|
113 |
+
start()
|
114 |
+
```
|
115 |
+
|
116 |
+
|
117 |
+
|
118 |
+
<p align="center">
|
119 |
+
<a href="#">
|
120 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/c78f3460-6660-4da6-8941-a8ac5cfc1191" alt="Logo" >
|
121 |
+
</a>
|
122 |
+
</p>
|
123 |
+
|
124 |
+
### Adding Custom Tools
|
125 |
+
|
126 |
+
Now you are able to add custom tools that run in the agentic infra and assistant processes.
|
127 |
+
|
128 |
+
|
129 |
+
```python
|
130 |
+
from gpt_computer_assistant import Tool, start
|
131 |
+
|
132 |
+
@Tool
|
133 |
+
def sum_tool(first_number: int, second_number: int) -> str:
|
134 |
+
"""Useful for when you need to sum two numbers together."""
|
135 |
+
return first_number + second_number
|
136 |
+
|
137 |
+
start()
|
138 |
+
```
|
139 |
+
|
140 |
+
|
141 |
+
|
142 |
+
|
143 |
+
|
144 |
+
|
145 |
+
<p align="center">
|
146 |
+
<a href="#">
|
147 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/65b5fe7c-c0e1-40e9-9447-f41cd4f369a3" alt="Logo" >
|
148 |
+
</a>
|
149 |
+
</p>
|
150 |
+
|
151 |
+
|
152 |
+
### API | NEW
|
153 |
+
|
154 |
+
Now you can use your GPT Computer Assistant remotely! GUI still active, for this there is few steps:
|
155 |
+
|
156 |
+
```console
|
157 |
+
pip3 install 'gpt-computer-assistant[base]'
|
158 |
+
pip3 install 'gpt-computer-assistant[api]'
|
159 |
+
```
|
160 |
+
|
161 |
+
```console
|
162 |
+
computerassistant --api
|
163 |
+
```
|
164 |
+
|
165 |
+
|
166 |
+
```python
|
167 |
+
from gpt_computer_assistant.remote import remote
|
168 |
+
|
169 |
+
output = remote.input("Hi, how are you today?", screen=False, talk=False)
|
170 |
+
print(output)
|
171 |
+
|
172 |
+
remote.just_screenshot()
|
173 |
+
|
174 |
+
remote.talk("TTS test")
|
175 |
+
|
176 |
+
# Other Functionalities
|
177 |
+
remote.reset_memory()
|
178 |
+
remote.profile("default")
|
179 |
+
|
180 |
+
remote.enable_predefined_agents()
|
181 |
+
remote.disable_predefined_agents()
|
182 |
+
|
183 |
+
remote.enable_online_tools()
|
184 |
+
remote.disable_online_tools()
|
185 |
+
```
|
186 |
+
|
187 |
+
|
188 |
+
|
189 |
+
|
190 |
+
|
191 |
+
|
192 |
+
<p align="center">
|
193 |
+
<br>
|
194 |
+
<br>
|
195 |
+
<br>
|
196 |
+
<br>
|
197 |
+
<br>
|
198 |
+
</p>
|
199 |
+
|
200 |
+
<p align="center">
|
201 |
+
<br>
|
202 |
+
<br>
|
203 |
+
<br>
|
204 |
+
</p>
|
205 |
+
|
206 |
+
|
207 |
+
https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/26ae3624-e619-44d6-9b04-f39cf1ac1f8f
|
208 |
+
|
209 |
+
|
210 |
+
## Usage
|
211 |
+

|
212 |
+
|
213 |
+
|
214 |
+
|
215 |
+
### Use cases
|
216 |
+
|
217 |
+
<table>
|
218 |
+
<tr>
|
219 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/b4a4f11e-5588-4656-b5d7-b612a9a2855b" alt="Take Meeting Notes" width="500"/></td>
|
220 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/49eeac70-b33a-4ec4-8125-64127621ed62" alt="Daily Assistant" width="500"/></td>
|
221 |
+
</tr>
|
222 |
+
<tr>
|
223 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/10b69a18-033c-4d81-8ac9-f4e3c65b59c3" alt="Read Docs" width="500"/></td>
|
224 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/0f483bae-ffaf-4311-8653-c0dc64fb5ebe" alt="Coding Assistant" width="500"/></td>
|
225 |
+
|
226 |
+
</tr>
|
227 |
+
</table>
|
228 |
+
|
229 |
+
|
230 |
+
|
231 |
+
|
232 |
+
|
233 |
+
|
234 |
+
## Roadmap
|
235 |
+
| Feature | Status | Target Release |
|
236 |
+
|---------------------------------|--------------|----------------|
|
237 |
+
| Clear Chat History | Completed | Q2 2024 |
|
238 |
+
| Long Audios Support (Split 20mb) | Completed | Q2 2024 |
|
239 |
+
| Text Inputs | Completed | Q2 2024 |
|
240 |
+
| Just Text Mode (Mute Speech) | Completed | Q2 2024 |
|
241 |
+
| Added profiles (Different Chats) | Completed | Q2 2024 |
|
242 |
+
| More Feedback About Assistant Status | Completed | Q2 2024 |
|
243 |
+
| Local Model Vision and Text (With Ollama, and vision models) | Completed | Q2 2024 |
|
244 |
+
| **Our Customizable Agent Infrastructure** | Completed | Q2 2024 |
|
245 |
+
| Supporting Groq Models | Completed | Q2 2024 |
|
246 |
+
| **Adding Custom Tools** | Completed | Q2 2024 |
|
247 |
+
| Click on something on the screen (text and icon) | Completed | Q2 2024 |
|
248 |
+
| New UI | Completed | Q2 2024 |
|
249 |
+
| Native Applications, exe, dmg | Failed (Agentic Infra libraries not supported for now) | Q2 2024 |
|
250 |
+
| **Collaborated Speaking Different Voice Models on long responses.** | Completed | Q2 2024 |
|
251 |
+
| **Auto Stop Recording, when you complate talking** | Completed | Q2 2024 |
|
252 |
+
| **Wakeup Word** | Completed | Q2 2024 |
|
253 |
+
| **Continuously Conversations** | Completed | Q2 2024 |
|
254 |
+
| **Adding more capability on device** | Planned | Q2 2024 |
|
255 |
+
| DeepFace Integration (Facial Recognition) | Planned | Q2 2024 |
|
256 |
+
|
257 |
+
|
258 |
+
|
259 |
+
|
260 |
+
|
261 |
+
|
262 |
+
|
263 |
+
## Capabilities
|
264 |
+
At this time we have many infrastructure elements. We just aim to provide whole things that already in ChatGPT app.
|
265 |
+
|
266 |
+
| Capability | Status |
|
267 |
+
|------------------------------------|----------------------------------|
|
268 |
+
| **Screen Read** | OK |
|
269 |
+
| **Click to and Text or Icon in the screen** | OK |
|
270 |
+
| **Move to and Text or Icon in the screen** | OK |
|
271 |
+
| **Typing Something** | OK |
|
272 |
+
| **Pressing to Any Key** | OK |
|
273 |
+
| **Scrolling** | OK |
|
274 |
+
| **Microphone** | OK |
|
275 |
+
| **System Audio** | OK |
|
276 |
+
| **Memory** | OK |
|
277 |
+
| **Open and Close App** | OK |
|
278 |
+
| **Open a URL** | OK |
|
279 |
+
| **Clipboard** | OK |
|
280 |
+
| **Search Engines** | OK |
|
281 |
+
| **Writing and running Python** | OK |
|
282 |
+
| **Writing and running SH** | OK |
|
283 |
+
| **Using your Telegram Account** | OK |
|
284 |
+
| **Knowledge Management** | OK |
|
285 |
+
| **[Add more tool](https://github.com/onuratakan/gpt-computer-assistant/blob/master/gpt_computer_assistant/standard_tools.py)** | ? |
|
286 |
+
|
287 |
+
### Predefined Agents
|
288 |
+
If you enable it your assistant will work with these teams:
|
289 |
+
|
290 |
+
| Team Name | Status |
|
291 |
+
|------------------------------------|----------------------------------|
|
292 |
+
| **search_on_internet_and_report_team** | OK |
|
293 |
+
| **generate_code_with_aim_team_** | OK |
|
294 |
+
| **[Add your own one](https://github.com/onuratakan/gpt-computer-assistant/blob/master/gpt_computer_assistant/teams.py)** | ? |
|
295 |
+
|
296 |
+
|
297 |
+
|
298 |
+
<a href="#">
|
299 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/ba590bf8-6059-4cb6-8c4e-6d105ce4edd2" alt="Logo" >
|
300 |
+
</a>
|
301 |
+
|
302 |
+
|
303 |
+
|
304 |
+
|
305 |
+
## Contributors
|
306 |
+
|
307 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/graphs/contributors">
|
308 |
+
<img src="https://contrib.rocks/image?repo=onuratakan/gpt-computer-assistant" />
|
309 |
+
</a>
|
README.zh_CN.md
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<p align="center">
|
2 |
+
<a href="#">
|
3 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/176c8ddb-219e-444e-8782-1f8c37a92678" alt="Logo" width="250" >
|
4 |
+
</a>
|
5 |
+
|
6 |
+
<h3 align="center">GPT 计算机助手</h3>
|
7 |
+
|
8 |
+
<p align="center">
|
9 |
+
适用于 Windows、MacOS 和 Ubuntu 的 gpt-4o
|
10 |
+
<br />
|
11 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki"><strong>文档</strong></a>
|
12 |
+
.
|
13 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/#Capabilities"><strong>探索功能 »</strong></a>
|
14 |
+
<br />
|
15 |
+
</p>
|
16 |
+
<br>
|
17 |
+
<p align="center">
|
18 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
19 |
+
<img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white" alt="windows">
|
20 |
+
</a>
|
21 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
22 |
+
<img src="https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=apple&logoColor=white" alt="macos">
|
23 |
+
</a>
|
24 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
25 |
+
<img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black" alt="linux">
|
26 |
+
</a>
|
27 |
+
<br>
|
28 |
+
|
29 |
+
</p>
|
30 |
+
<p align="center">
|
31 |
+
<a href="https://www.python.org/">
|
32 |
+
<img src="https://img.shields.io/badge/Made%20with-Python-1f425f.svg" alt="Made_with_python">
|
33 |
+
</a>
|
34 |
+
.
|
35 |
+
<img src="https://static.pepy.tech/personalized-badge/gpt-computer-assistant?period=total&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20Downloads" alt="pypi_downloads">
|
36 |
+
</p>
|
37 |
+
|
38 |
+
|
39 |
+
<p align="center">
|
40 |
+
<a href="https://discord.gg/qApFmWMt8x"><img alt="Static Badge" src="https://img.shields.io/badge/Discord-Join?style=social&logo=discord" width=150></a>
|
41 |
+
<a href="https://x.com/GPTCompAsst"><img alt="Static Badge" src="https://img.shields.io/badge/X-Join?style=social&logo=x" width=100></a>
|
42 |
+
|
43 |
+
</p>
|
44 |
+
|
45 |
+
|[ENGLISH](README.md)|简体中文|[正體中文](README.zh_TW.md)
|
46 |
+
|
47 |
+
# GPT 计算机助手
|
48 |
+
你好,这是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此,这是一个全新且稳定的项目。此时,您可以轻松地将其作为 Python 库安装,但我们将准备一个流水线来提供本机安装脚本 (.exe)。
|
49 |
+
|
50 |
+
由 <a href="https://github.com/Upsonic/Tiger"><strong>Upsonic Tiger 🐅</strong></a> 提供支持的功能集成中心。
|
51 |
+
|
52 |
+
## 安装 && 运行
|
53 |
+
需要 >= Python 3.9
|
54 |
+
```console
|
55 |
+
pip3 install 'gpt-computer-assistant[default]'
|
56 |
+
```
|
57 |
+
|
58 |
+
```console
|
59 |
+
computerassistant
|
60 |
+
```
|
61 |
+
|
62 |
+
|
63 |
+
|
64 |
+
### 演示视频(1 分钟)
|
65 |
+
|
66 |
+
https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/26ae3624-e619-44d6-9b04-f39cf1ac1f8f
|
67 |
+
|
68 |
+
|
69 |
+
|
70 |
+
## 使用案例
|
71 |
+
|
72 |
+
<table>
|
73 |
+
<tr>
|
74 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/b4a4f11e-5588-4656-b5d7-b612a9a2855b" alt="Take Meeting Notes" width="500"/></td>
|
75 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/49eeac70-b33a-4ec4-8125-64127621ed62" alt="Daily Assistant" width="500"/></td>
|
76 |
+
</tr>
|
77 |
+
<tr>
|
78 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/10b69a18-033c-4d81-8ac9-f4e3c65b59c3" alt="Read Docs" width="500"/></td>
|
79 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/0f483bae-ffaf-4311-8653-c0dc64fb5ebe" alt="Coding Assistant" width="500"/></td>
|
80 |
+
|
81 |
+
</tr>
|
82 |
+
</table>
|
83 |
+
|
84 |
+
|
85 |
+
|
86 |
+
## 路线图
|
87 |
+
|
88 |
+
| 功能 | 状态 | 目标发布 |
|
89 |
+
|---------------------------------|--------------|--------------|
|
90 |
+
| 清除聊天记录 | 已完成 | 2024 年第二季度|
|
91 |
+
| 长音频支持(拆分 20mb) | 已完成 | 2024 年第二季度|
|
92 |
+
| 文本输入 | 已完成 | 2024 年第二季度|
|
93 |
+
| 仅文本模式(静音) | 已完成 | 2024 年第二季度|
|
94 |
+
| 添加配置文件(不同聊天) | 已完成 | 2024 年第二季度|
|
95 |
+
| 更多关于助手状态的反馈 | 已完成 | 2024 年第二季度|
|
96 |
+
| **新 UI** | 计划中 | 2024 年第二季度|
|
97 |
+
| **我们的自定义代理基础设施** | 计划中 | 2024 年第二季度|
|
98 |
+
| **本机应用程序,exe,dmg,appimage** | 计划中 | 2024 年第二季度|
|
99 |
+
| **DeepFace 集成(面部识别)** | 计划中 | 2024 年第二季度|
|
100 |
+
| **本地模式(使用 Ollama,语音和视觉模型)** | 计划中 | 2024 年第二季度|
|
101 |
+
|
102 |
+
|
103 |
+
#### 代理基础设施 | 即将推出
|
104 |
+
|
105 |
+
```python
|
106 |
+
from gpt-comptuer-assistant import crew, agent
|
107 |
+
|
108 |
+
coder = agent("你是一名高级 Python 开发者")
|
109 |
+
|
110 |
+
manager = agent("你是一名高级项目经理")
|
111 |
+
|
112 |
+
assistant = crew(
|
113 |
+
[coder, manager]
|
114 |
+
)
|
115 |
+
|
116 |
+
assistant.gui()
|
117 |
+
```
|
118 |
+
|
119 |
+
|
120 |
+
|
121 |
+
|
122 |
+
## 功能
|
123 |
+
此时我们拥有许多基础设施元素。我们只是希望提供 ChatGPT 应用中已经存在的所有功能。
|
124 |
+
|
125 |
+
| 功能 | 描述 |
|
126 |
+
|-----------------------------------|-------------------------------|
|
127 |
+
| **屏幕读取** | OK |
|
128 |
+
| **麦克风** | OK |
|
129 |
+
| **系统音频** | OK |
|
130 |
+
| **内存** | OK |
|
131 |
+
| **打开和关闭应用程序** | OK |
|
132 |
+
| **打开一个 URL** | OK |
|
133 |
+
| **剪贴板** | OK |
|
134 |
+
| **搜索引擎** | OK |
|
135 |
+
| **编写和运行 Python** | OK |
|
136 |
+
| **编写和运行 SH** | OK |
|
137 |
+
| **使用你的 Telegram 账户** | OK |
|
138 |
+
| **知识管理** | OK |
|
139 |
+
|
140 |
+
|
141 |
+
|
142 |
+
|
143 |
+
|
144 |
+
|
145 |
+
|
146 |
+
## 用法
|
147 |
+
|
148 |
+

|
149 |
+
|
150 |
+
|
151 |
+
|
152 |
+
** 第一次单击包含麦克风或系统音频的选项后,需要再次单击相同选项以停止。
|
153 |
+
|
154 |
+
|
155 |
+
|
156 |
+
## 贡献者
|
157 |
+
|
158 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/graphs/contributors">
|
159 |
+
<img src="https://contrib.rocks/image?repo=onuratakan/gpt-computer-assistant" />
|
160 |
+
</a>
|
README.zh_TW.md
ADDED
@@ -0,0 +1,209 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
|
3 |
+
<p align="center">
|
4 |
+
<a href="#">
|
5 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/176c8ddb-219e-444e-8782-1f8c37a92678" alt="Logo" width="250" >
|
6 |
+
</a>
|
7 |
+
|
8 |
+
<h3 align="center">GPT 電腦助手</h3>
|
9 |
+
<p align="center">
|
10 |
+
<a href="https://discord.gg/qApFmWMt8x"><img alt="Static Badge" src="https://img.shields.io/discord/1148697961639968859.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2" width=100></a>
|
11 |
+
</p>
|
12 |
+
|
13 |
+
<p align="center">
|
14 |
+
適用於 Windows、MacOS 和 Ubuntu 的 gpt-4o
|
15 |
+
<br />
|
16 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki"><strong>文件</strong></a>
|
17 |
+
.
|
18 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/#Capabilities"><strong>探索功能 »</strong></a>
|
19 |
+
<br />
|
20 |
+
</p>
|
21 |
+
<br>
|
22 |
+
<p align="center">
|
23 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
24 |
+
<img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white" alt="windows">
|
25 |
+
</a>
|
26 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
27 |
+
<img src="https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=apple&logoColor=white" alt="macos">
|
28 |
+
</a>
|
29 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki">
|
30 |
+
<img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black" alt="linux">
|
31 |
+
</a>
|
32 |
+
<br>
|
33 |
+
|
34 |
+
</p>
|
35 |
+
<p align="center">
|
36 |
+
<a href="https://www.python.org/">
|
37 |
+
<img src="https://img.shields.io/badge/Made%20with-Python-1f425f.svg" alt="Made_with_python">
|
38 |
+
</a>
|
39 |
+
.
|
40 |
+
<img src="https://static.pepy.tech/personalized-badge/gpt-computer-assistant?period=total&units=international_system&left_color=grey&right_color=blue&left_text=PyPI%20Downloads" alt="pypi_downloads">
|
41 |
+
</p>
|
42 |
+
|
43 |
+
|
44 |
+
<p align="center">
|
45 |
+
<a href="https://x.com/GPTCompAsst"><img alt="Static Badge" src="https://img.shields.io/twitter/follow/GPTCompAsst?style=social" width=160></a>
|
46 |
+
</p>
|
47 |
+
|
48 |
+
|
49 |
+
|[ENGLISH](README.md)|[簡體中文](README.zh_CN.md)|正體中文
|
50 |
+
|
51 |
+
# GPT 電腦助手
|
52 |
+
嗨,這是為了將 ChatGPT MacOS 應用程式提供給 Windows 和 Linux 的替代方案。這樣做可以提供一個新鮮且穩定的解決方案。這次您可以輕鬆地安裝為 Python 庫,但我們將準備一個流程,提供本機安裝腳本(.exe)。
|
53 |
+
|
54 |
+
由 <a href="https://github.com/Upsonic/Tiger"><strong>Upsonic Tiger 🐅</strong></a> 提供支持的功能集成中心。
|
55 |
+
|
56 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki/Usage"><img alt="Static Badge" src="https://img.shields.io/badge/Local_Models-Available-blue" width=150></a>
|
57 |
+
<br>
|
58 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/wiki/Usage"><img alt="Static Badge" src="https://img.shields.io/badge/Groq-Available-blue" width=100></a>
|
59 |
+
|
60 |
+
|
61 |
+
|
62 |
+
## 安裝 && 運行
|
63 |
+
需要 >= Python 3.9
|
64 |
+
```console
|
65 |
+
pip3 install 'gpt-computer-assistant[default]'
|
66 |
+
```
|
67 |
+
|
68 |
+
```console
|
69 |
+
computerassistant
|
70 |
+
```
|
71 |
+
|
72 |
+
### 代理基礎設施
|
73 |
+
|
74 |
+
這樣一來,您可以創建 `crewai` 代理,並將其用於 gpt-computer-assistant 圖形用戶界面和工具中。
|
75 |
+
|
76 |
+
|
77 |
+
```console
|
78 |
+
pip3 install 'gpt-computer-assistant[agentic]'
|
79 |
+
```
|
80 |
+
|
81 |
+
```python
|
82 |
+
from gpt_computer_assistant import Agent, start
|
83 |
+
|
84 |
+
manager = Agent(
|
85 |
+
role='Project Manager',
|
86 |
+
goal='understands project needs and assist coder',
|
87 |
+
backstory="""You're a manager at a large company.""",
|
88 |
+
)
|
89 |
+
|
90 |
+
coder = Agent(
|
91 |
+
role='Senior Python Coder',
|
92 |
+
goal='writing python scripts and copying to clipboard',
|
93 |
+
backstory="""You're a python developer at a large company.""",
|
94 |
+
)
|
95 |
+
|
96 |
+
|
97 |
+
start()
|
98 |
+
```
|
99 |
+
|
100 |
+
|
101 |
+
### 新增自訂工具
|
102 |
+
|
103 |
+
現在您可以添加在代理基礎設施和助理進程中運行的自訂工具。
|
104 |
+
|
105 |
+
|
106 |
+
```python
|
107 |
+
from gpt_computer_assistant import Tool, start
|
108 |
+
|
109 |
+
@Tool
|
110 |
+
def sum_tool(first_number: int, second_number: int) -> str:
|
111 |
+
"""Useful for when you need to sum two numbers together."""
|
112 |
+
return first_number + second_number
|
113 |
+
|
114 |
+
start()
|
115 |
+
```
|
116 |
+
|
117 |
+
|
118 |
+
https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/26ae3624-e619-44d6-9b04-f39cf1ac1f8f
|
119 |
+
|
120 |
+
<p align="center">
|
121 |
+
<a href="#">
|
122 |
+
<img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/94ac619c-1f29-4fe6-b3cb-85a03932646b" alt="Logo" >
|
123 |
+
</a>
|
124 |
+
</p>
|
125 |
+
|
126 |
+
|
127 |
+
|
128 |
+
|
129 |
+
|
130 |
+
|
131 |
+
|
132 |
+
## 使用方式
|
133 |
+

|
134 |
+
|
135 |
+
|
136 |
+
## 使用案例
|
137 |
+
|
138 |
+
<table>
|
139 |
+
<tr>
|
140 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/b4a4f11e-5588-4656-b5d7-b612a9a2855b" alt="Take Meeting Notes" width="500"/></td>
|
141 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/49eeac70-b33a-4ec4-8125-64127621ed62" alt="Daily Assistant" width="500"/></td>
|
142 |
+
</tr>
|
143 |
+
<tr>
|
144 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/10b69a18-033c-4d81-8ac9-f4e3c65b59c3" alt="Read Docs" width="500"/></td>
|
145 |
+
<td><img src="https://github.com/onuratakan/gpt-computer-assistant/assets/41792982/0f483bae-ffaf-4311-8653-c0dc64fb5ebe" alt="Coding Assistant" width="500"/></td>
|
146 |
+
|
147 |
+
</tr>
|
148 |
+
</table>
|
149 |
+
|
150 |
+
|
151 |
+
|
152 |
+
|
153 |
+
|
154 |
+
|
155 |
+
## 路線圖
|
156 |
+
|
157 |
+
| 功能 | 狀態 | 目標發布 |
|
158 |
+
|---------------------------------|--------------|--------------|
|
159 |
+
| 清除聊天記錄 | 已完成 | 2024 年第二季度|
|
160 |
+
| 長音訊支持(拆分 20mb) | 已完成 | 2024 年第二季度|
|
161 |
+
| 文本輸入 | 已完成 | 2024 年第二季度|
|
162 |
+
| 僅文本模式(靜音) | 已完成 | 2024 年第二季度|
|
163 |
+
| 添加配置文件(不同聊天) | 已完成 | 2024 年第二季度|
|
164 |
+
| 更多關於助手狀態的回饋 | 已完成 | 2024 年第二季度|
|
165 |
+
| **新 UI** | 計劃中 | 2024 年第二季度|
|
166 |
+
| **我們的自訂代理基礎設施** | 計劃中 | 2024 年第二季度|
|
167 |
+
| **本機應用程式,exe,dmg,appimage** | 計劃中 | 2024 年第二季度|
|
168 |
+
| **DeepFace 集成(臉部識別)** | 計劃中 | 2024 年第二季度|
|
169 |
+
| **本地模式(使用 Ollama,語音和視覺模型)** | 計劃中 | 2024 年第二季度|
|
170 |
+
|
171 |
+
|
172 |
+
|
173 |
+
|
174 |
+
|
175 |
+
|
176 |
+
|
177 |
+
|
178 |
+
## 功能
|
179 |
+
此時我們擁有許多基礎設施元素。我們只是希望提供 ChatGPT 應用中已經存在的所有功能。
|
180 |
+
|
181 |
+
| 功能 | 描述 |
|
182 |
+
|-----------------------------------|-------------------------------|
|
183 |
+
| **螢幕讀取** | OK |
|
184 |
+
| **麥克風** | OK |
|
185 |
+
| **系統音訊** | OK |
|
186 |
+
| **記憶體** | OK |
|
187 |
+
| **打開和關閉應用程式** | OK |
|
188 |
+
| **打開一個 URL** | OK |
|
189 |
+
| **剪貼簿** | OK |
|
190 |
+
| **搜尋引擎** | OK |
|
191 |
+
| **編寫和運行 Python** | OK |
|
192 |
+
| **編寫和運行 SH** | OK |
|
193 |
+
| **使用你的 Telegram 帳戶** | OK |
|
194 |
+
| **知識管理** | OK |
|
195 |
+
|
196 |
+
|
197 |
+
|
198 |
+
|
199 |
+
|
200 |
+
|
201 |
+
|
202 |
+
|
203 |
+
|
204 |
+
|
205 |
+
## 貢獻者
|
206 |
+
|
207 |
+
<a href="https://github.com/onuratakan/gpt-computer-assistant/graphs/contributors">
|
208 |
+
<img src="https://contrib.rocks/image?repo=onuratakan/gpt-computer-assistant" />
|
209 |
+
</a>
|
app.spec
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- mode: python ; coding: utf-8 -*-
|
2 |
+
|
3 |
+
import site
|
4 |
+
import os
|
5 |
+
site_pkgs_dir = site.getsitepackages()[0] # Get the path to site-packages directory
|
6 |
+
|
7 |
+
block_cipher = None
|
8 |
+
|
9 |
+
a = Analysis(
|
10 |
+
['run.py'],
|
11 |
+
pathex=[],
|
12 |
+
binaries=[],
|
13 |
+
datas=[('gpt_computer_assistant/utils/media/*', 'gpt_computer_assistant/utils/media')],
|
14 |
+
hiddenimports=[],
|
15 |
+
hookspath=[],
|
16 |
+
hooksconfig={},
|
17 |
+
runtime_hooks=[],
|
18 |
+
excludes=[],
|
19 |
+
win_no_prefer_redirects=False,
|
20 |
+
win_private_assemblies=False,
|
21 |
+
cipher=block_cipher,
|
22 |
+
noarchive=False,
|
23 |
+
)
|
24 |
+
|
25 |
+
# Adding manually all the libraries installed in site-packages
|
26 |
+
a.binaries += [("ext_libs", name, 'BINARY') for name in os.listdir(site_pkgs_dir) if not os.path.isdir(os.path.join(site_pkgs_dir, name))]
|
27 |
+
|
28 |
+
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
29 |
+
|
30 |
+
exe = EXE(
|
31 |
+
pyz,
|
32 |
+
a.scripts,
|
33 |
+
a.binaries,
|
34 |
+
a.zipfiles,
|
35 |
+
a.datas,
|
36 |
+
[],
|
37 |
+
name='GPT_Computer_Assistant',
|
38 |
+
debug=False,
|
39 |
+
bootloader_ignore_signals=False,
|
40 |
+
strip=False,
|
41 |
+
upx=True,
|
42 |
+
upx_exclude=[],
|
43 |
+
runtime_tmpdir=None,
|
44 |
+
console=False,
|
45 |
+
disable_windowed_traceback=False,
|
46 |
+
argv_emulation=False,
|
47 |
+
target_arch=None,
|
48 |
+
codesign_identity=None,
|
49 |
+
entitlements_file=None,
|
50 |
+
icon='gpt_computer_assistant/utils/media/icon.ico'
|
51 |
+
)
|
bump.py
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""Module for managing the version updates of a python package."""
|
2 |
+
|
3 |
+
import os
|
4 |
+
import sys
|
5 |
+
import re
|
6 |
+
import logging
|
7 |
+
import shlex
|
8 |
+
|
9 |
+
logging.basicConfig(level=logging.INFO)
|
10 |
+
logger = logging.getLogger(__name__)
|
11 |
+
|
12 |
+
|
13 |
+
def read_version():
|
14 |
+
"""
|
15 |
+
Gets and extracts the version number from the '__init__.py' file of
|
16 |
+
a Python package.
|
17 |
+
|
18 |
+
Returns:
|
19 |
+
str or None: The version number of the package if found, otherwise None.
|
20 |
+
"""
|
21 |
+
with open('gpt_computer_assistant/__init__.py', 'r') as file:
|
22 |
+
for line in file:
|
23 |
+
match = re.search(r"__version__ = '(.*)'", line)
|
24 |
+
if match:
|
25 |
+
return match.group(1)
|
26 |
+
|
27 |
+
|
28 |
+
def increment_version(part, version):
|
29 |
+
"""
|
30 |
+
Simple function that increments the version number based on the given part
|
31 |
+
i.e., ('major', 'minor', or 'patch').
|
32 |
+
|
33 |
+
Notes:
|
34 |
+
Splits the version string into major, minor, and patch components, then
|
35 |
+
increments the specified part by one
|
36 |
+
|
37 |
+
Args:
|
38 |
+
part (str): The part of the version number to increment
|
39 |
+
('major', 'minor', or 'patch').
|
40 |
+
version (str): The current version number in 'major.minor.patch' format.
|
41 |
+
|
42 |
+
Returns:
|
43 |
+
str: String containing new changes made to the version.
|
44 |
+
"""
|
45 |
+
major, minor, patch = map(int, version.split('.'))
|
46 |
+
if part == 'major':
|
47 |
+
major += 1
|
48 |
+
minor = 0
|
49 |
+
patch = 0
|
50 |
+
elif part == 'minor':
|
51 |
+
minor += 1
|
52 |
+
patch = 0
|
53 |
+
elif part == 'patch':
|
54 |
+
patch += 1
|
55 |
+
return f'{major}.{minor}.{patch}'
|
56 |
+
|
57 |
+
|
58 |
+
def write_version(version):
|
59 |
+
"""
|
60 |
+
Updates the `__version__` variable in the `__init__.py` file of the
|
61 |
+
`gpt_computer_assistant` package.
|
62 |
+
|
63 |
+
Args:
|
64 |
+
version (str): The new version number to replace the existing one.
|
65 |
+
"""
|
66 |
+
with open('gpt_computer_assistant/__init__.py', 'r+') as file:
|
67 |
+
content = file.read()
|
68 |
+
content = re.sub(r"__version__ = '.*'", f"__version__ = '{version}'", content)
|
69 |
+
file.seek(0)
|
70 |
+
file.write(content)
|
71 |
+
|
72 |
+
|
73 |
+
def update_version(version):
|
74 |
+
"""
|
75 |
+
Updates the version number found in a list of files.
|
76 |
+
|
77 |
+
Args:
|
78 |
+
version (str): The new version number to replace the existing one.
|
79 |
+
"""
|
80 |
+
files = ['setup.py']
|
81 |
+
for file in files:
|
82 |
+
with open(file, 'r+') as f:
|
83 |
+
content = f.read()
|
84 |
+
content = re.sub(r' version=".*"', f' version="{version}"', content)
|
85 |
+
f.seek(0)
|
86 |
+
f.write(content)
|
87 |
+
|
88 |
+
|
89 |
+
def create_tag(version):
|
90 |
+
"""
|
91 |
+
Uses the `os.system()` to create a `Git tag` for a specified version.
|
92 |
+
|
93 |
+
Args:
|
94 |
+
version (str): The version number for the git tag.
|
95 |
+
"""
|
96 |
+
os.system(f"git tag v{shlex.quote(version)}")
|
97 |
+
|
98 |
+
|
99 |
+
def create_commit(version):
|
100 |
+
"""
|
101 |
+
Uses `os.system()` to add and commit the changed version number
|
102 |
+
to the Git repository.
|
103 |
+
|
104 |
+
Args:
|
105 |
+
version (str): Version number included in the commit message.
|
106 |
+
"""
|
107 |
+
os.system("git add .")
|
108 |
+
os.system(f"git commit -m 'Changed version number with v{shlex.quote(version)}'")
|
109 |
+
|
110 |
+
|
111 |
+
def push():
|
112 |
+
"""Pushes changes and tags to the repository."""
|
113 |
+
os.system("git push")
|
114 |
+
os.system("git push --tag")
|
115 |
+
|
116 |
+
|
117 |
+
def main():
|
118 |
+
"""The main function for managing version updates."""
|
119 |
+
valid_parts = ['major', 'minor', 'patch']
|
120 |
+
if len(sys.argv) != 2 or sys.argv[1] not in valid_parts:
|
121 |
+
logger.error(f"Usage: python version.py <{'|'.join(valid_parts)}>")
|
122 |
+
sys.exit(1)
|
123 |
+
|
124 |
+
part = sys.argv[1]
|
125 |
+
version = read_version()
|
126 |
+
new_version = increment_version(part, version)
|
127 |
+
write_version(new_version)
|
128 |
+
update_version(new_version)
|
129 |
+
create_commit(new_version)
|
130 |
+
create_tag(new_version)
|
131 |
+
push()
|
132 |
+
|
133 |
+
|
134 |
+
if __name__ == '__main__':
|
135 |
+
main()
|
project.toml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[tool.black]
|
2 |
+
line-length = 120
|
3 |
+
|
4 |
+
include = '\.pyi?$'
|
requirements.in
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
langgraph==0.0.51
|
2 |
+
pyqt5==5.15.10
|
3 |
+
scipy==1.13.1
|
4 |
+
pygame==2.5.2
|
5 |
+
soundcard==0.4.3
|
6 |
+
openai==1.30.3
|
7 |
+
langchain-google-genai==1.0.4
|
8 |
+
python-dotenv==1.0.0
|
9 |
+
upsonic==0.28.4
|
10 |
+
pyautogui==0.9.54
|
11 |
+
sounddevice==0.4.6
|
12 |
+
soundfile==0.12.1
|
13 |
+
pydub==0.25.1
|
14 |
+
pyscreeze==0.1.30
|
15 |
+
pyperclip==1.8.2
|
16 |
+
pydantic==2.7.2
|
17 |
+
pillow==10.3.0
|
18 |
+
langchainhub==0.1.18
|
19 |
+
langchain-experimental==0.0.58
|
20 |
+
opentelemetry-sdk==1.24.0
|
21 |
+
opentelemetry-exporter-otlp==1.24.0
|
22 |
+
langchain-groq==0.1.5
|
23 |
+
langchain-openai==0.1.6
|
24 |
+
open-interpreter==0.2.6
|
25 |
+
langchain==0.1.20
|
26 |
+
langchain-community==0.0.38
|
27 |
+
langchain-core==0.1.52
|
28 |
+
|
29 |
+
# custom tools
|
30 |
+
pyperclip==1.8.2
|
31 |
+
google==3.0.0
|
32 |
+
duckduckgo-search==5.3.0
|
33 |
+
beautifulsoup4==4.12.3
|
requirements.txt
ADDED
@@ -0,0 +1,592 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#
|
2 |
+
# This file is autogenerated by pip-compile with Python 3.10
|
3 |
+
# by the following command:
|
4 |
+
#
|
5 |
+
# pip-compile requirements.in
|
6 |
+
#
|
7 |
+
aiohttp==3.9.5
|
8 |
+
# via
|
9 |
+
# langchain
|
10 |
+
# langchain-community
|
11 |
+
# litellm
|
12 |
+
langchain-google-genai==1.0.4
|
13 |
+
aiosignal==1.3.1
|
14 |
+
# via aiohttp
|
15 |
+
annotated-types==0.7.0
|
16 |
+
# via pydantic
|
17 |
+
ansicon==1.89.0
|
18 |
+
# via jinxed
|
19 |
+
anyio==4.4.0
|
20 |
+
# via
|
21 |
+
# groq
|
22 |
+
# httpx
|
23 |
+
# openai
|
24 |
+
astor==0.8.1
|
25 |
+
# via open-interpreter
|
26 |
+
asttokens==2.4.1
|
27 |
+
# via stack-data
|
28 |
+
async-timeout==4.0.3
|
29 |
+
# via
|
30 |
+
# aiohttp
|
31 |
+
# langchain
|
32 |
+
attrs==23.2.0
|
33 |
+
# via aiohttp
|
34 |
+
blessed==1.20.0
|
35 |
+
# via inquirer
|
36 |
+
cachetools==5.3.3
|
37 |
+
# via google-auth
|
38 |
+
certifi==2024.6.2
|
39 |
+
# via
|
40 |
+
# httpcore
|
41 |
+
# httpx
|
42 |
+
# requests
|
43 |
+
cffi==1.16.0
|
44 |
+
# via
|
45 |
+
# cryptography
|
46 |
+
# soundcard
|
47 |
+
# sounddevice
|
48 |
+
# soundfile
|
49 |
+
charset-normalizer==3.3.2
|
50 |
+
# via requests
|
51 |
+
click==8.1.7
|
52 |
+
# via
|
53 |
+
# litellm
|
54 |
+
# nltk
|
55 |
+
cloudpickle==3.0.0
|
56 |
+
# via upsonic
|
57 |
+
colorama==0.4.6
|
58 |
+
# via
|
59 |
+
# click
|
60 |
+
# ipython
|
61 |
+
# tqdm
|
62 |
+
comm==0.2.2
|
63 |
+
# via ipykernel
|
64 |
+
contourpy==1.2.1
|
65 |
+
# via matplotlib
|
66 |
+
cryptography==41.0.3
|
67 |
+
# via upsonic
|
68 |
+
cycler==0.12.1
|
69 |
+
# via matplotlib
|
70 |
+
dataclasses-json==0.6.7
|
71 |
+
# via
|
72 |
+
# langchain
|
73 |
+
# langchain-community
|
74 |
+
debugpy==1.8.1
|
75 |
+
# via ipykernel
|
76 |
+
decorator==5.1.1
|
77 |
+
# via ipython
|
78 |
+
deprecated==1.2.14
|
79 |
+
# via
|
80 |
+
# opentelemetry-api
|
81 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
82 |
+
# opentelemetry-exporter-otlp-proto-http
|
83 |
+
dill==0.3.8
|
84 |
+
# via upsonic
|
85 |
+
distro==1.9.0
|
86 |
+
# via
|
87 |
+
# groq
|
88 |
+
# openai
|
89 |
+
editor==1.6.6
|
90 |
+
# via inquirer
|
91 |
+
exceptiongroup==1.2.1
|
92 |
+
# via
|
93 |
+
# anyio
|
94 |
+
# ipython
|
95 |
+
executing==2.0.1
|
96 |
+
# via stack-data
|
97 |
+
filelock==3.14.0
|
98 |
+
# via huggingface-hub
|
99 |
+
fire==0.5.0
|
100 |
+
# via upsonic
|
101 |
+
fonttools==4.53.0
|
102 |
+
# via matplotlib
|
103 |
+
frozenlist==1.4.1
|
104 |
+
# via
|
105 |
+
# aiohttp
|
106 |
+
# aiosignal
|
107 |
+
fsspec==2024.6.0
|
108 |
+
# via huggingface-hub
|
109 |
+
git-python==1.0.3
|
110 |
+
# via open-interpreter
|
111 |
+
gitdb==4.0.11
|
112 |
+
# via gitpython
|
113 |
+
gitpython==3.1.43
|
114 |
+
# via git-python
|
115 |
+
google-ai-generativelanguage==0.6.4
|
116 |
+
# via google-generativeai
|
117 |
+
google-api-core[grpc]==2.19.0
|
118 |
+
# via
|
119 |
+
# google-ai-generativelanguage
|
120 |
+
# google-api-python-client
|
121 |
+
# google-generativeai
|
122 |
+
google-api-python-client==2.133.0
|
123 |
+
# via google-generativeai
|
124 |
+
google-auth==2.30.0
|
125 |
+
# via
|
126 |
+
# google-ai-generativelanguage
|
127 |
+
# google-api-core
|
128 |
+
# google-api-python-client
|
129 |
+
# google-auth-httplib2
|
130 |
+
# google-generativeai
|
131 |
+
google-auth-httplib2==0.2.0
|
132 |
+
# via google-api-python-client
|
133 |
+
google-generativeai==0.5.4
|
134 |
+
# via langchain-google-genai
|
135 |
+
googleapis-common-protos==1.63.1
|
136 |
+
# via
|
137 |
+
# google-api-core
|
138 |
+
# grpcio-status
|
139 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
140 |
+
# opentelemetry-exporter-otlp-proto-http
|
141 |
+
greenlet==3.0.3
|
142 |
+
# via sqlalchemy
|
143 |
+
groq==0.8.0
|
144 |
+
# via langchain-groq
|
145 |
+
grpcio==1.64.1
|
146 |
+
# via
|
147 |
+
# google-api-core
|
148 |
+
# grpcio-status
|
149 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
150 |
+
grpcio-status==1.62.2
|
151 |
+
# via google-api-core
|
152 |
+
h11==0.14.0
|
153 |
+
# via httpcore
|
154 |
+
html2image==2.0.4.3
|
155 |
+
# via open-interpreter
|
156 |
+
httpcore==1.0.5
|
157 |
+
# via httpx
|
158 |
+
httplib2==0.22.0
|
159 |
+
# via
|
160 |
+
# google-api-python-client
|
161 |
+
# google-auth-httplib2
|
162 |
+
httpx==0.27.0
|
163 |
+
# via
|
164 |
+
# groq
|
165 |
+
# openai
|
166 |
+
huggingface-hub==0.23.3
|
167 |
+
# via tokenizers
|
168 |
+
idna==3.7
|
169 |
+
# via
|
170 |
+
# anyio
|
171 |
+
# httpx
|
172 |
+
# requests
|
173 |
+
# yarl
|
174 |
+
importlib-metadata==7.0.0
|
175 |
+
# via
|
176 |
+
# litellm
|
177 |
+
# opentelemetry-api
|
178 |
+
inquirer==3.2.4
|
179 |
+
# via open-interpreter
|
180 |
+
ipykernel==6.29.4
|
181 |
+
# via open-interpreter
|
182 |
+
ipython==8.25.0
|
183 |
+
# via ipykernel
|
184 |
+
jedi==0.19.1
|
185 |
+
# via ipython
|
186 |
+
jinja2==3.1.4
|
187 |
+
# via litellm
|
188 |
+
jinxed==1.2.1
|
189 |
+
# via blessed
|
190 |
+
joblib==1.4.2
|
191 |
+
# via nltk
|
192 |
+
jsonpatch==1.33
|
193 |
+
# via langchain-core
|
194 |
+
jsonpointer==3.0.0
|
195 |
+
# via jsonpatch
|
196 |
+
jupyter-client==8.6.2
|
197 |
+
# via
|
198 |
+
# ipykernel
|
199 |
+
# open-interpreter
|
200 |
+
jupyter-core==5.7.2
|
201 |
+
# via
|
202 |
+
# ipykernel
|
203 |
+
# jupyter-client
|
204 |
+
kiwisolver==1.4.5
|
205 |
+
# via matplotlib
|
206 |
+
langchain==0.1.20
|
207 |
+
# via
|
208 |
+
# -r requirements.in
|
209 |
+
# langchain-experimental
|
210 |
+
langchain-community==0.0.38
|
211 |
+
# via
|
212 |
+
# -r requirements.in
|
213 |
+
# langchain
|
214 |
+
langchain-core==0.1.52
|
215 |
+
# via
|
216 |
+
# -r requirements.in
|
217 |
+
# langchain
|
218 |
+
# langchain-community
|
219 |
+
# langchain-experimental
|
220 |
+
# langchain-google-genai
|
221 |
+
# langchain-groq
|
222 |
+
# langchain-openai
|
223 |
+
# langchain-text-splitters
|
224 |
+
# langgraph
|
225 |
+
langchain-experimental==0.0.58
|
226 |
+
# via -r requirements.in
|
227 |
+
langchain-google-genai==1.0.4
|
228 |
+
# via -r requirements.in
|
229 |
+
langchain-groq==0.1.5
|
230 |
+
# via -r requirements.in
|
231 |
+
langchain-openai==0.1.6
|
232 |
+
# via
|
233 |
+
# -r requirements.in
|
234 |
+
# upsonic
|
235 |
+
langchain-text-splitters==0.0.2
|
236 |
+
# via langchain
|
237 |
+
langchainhub==0.1.18
|
238 |
+
# via -r requirements.in
|
239 |
+
langgraph==0.0.51
|
240 |
+
# via -r requirements.in
|
241 |
+
langsmith==0.1.76
|
242 |
+
# via
|
243 |
+
# langchain
|
244 |
+
# langchain-community
|
245 |
+
# langchain-core
|
246 |
+
litellm==1.40.8
|
247 |
+
# via open-interpreter
|
248 |
+
markdown-it-py==3.0.0
|
249 |
+
# via rich
|
250 |
+
markupsafe==2.1.5
|
251 |
+
# via jinja2
|
252 |
+
marshmallow==3.21.3
|
253 |
+
# via dataclasses-json
|
254 |
+
matplotlib==3.9.0
|
255 |
+
# via open-interpreter
|
256 |
+
matplotlib-inline==0.1.7
|
257 |
+
# via
|
258 |
+
# ipykernel
|
259 |
+
# ipython
|
260 |
+
mdurl==0.1.2
|
261 |
+
# via markdown-it-py
|
262 |
+
memory-profiler==0.61.0
|
263 |
+
# via upsonic
|
264 |
+
mgzip==0.2.1
|
265 |
+
# via upsonic
|
266 |
+
mouseinfo==0.1.3
|
267 |
+
# via pyautogui
|
268 |
+
multidict==6.0.5
|
269 |
+
# via
|
270 |
+
# aiohttp
|
271 |
+
# yarl
|
272 |
+
mypy-extensions==1.0.0
|
273 |
+
# via typing-inspect
|
274 |
+
nest-asyncio==1.6.0
|
275 |
+
# via ipykernel
|
276 |
+
nltk==3.8.1
|
277 |
+
# via open-interpreter
|
278 |
+
numpy==1.26.4
|
279 |
+
# via
|
280 |
+
# contourpy
|
281 |
+
# langchain
|
282 |
+
# langchain-community
|
283 |
+
# matplotlib
|
284 |
+
# scipy
|
285 |
+
# soundcard
|
286 |
+
open-interpreter==0.2.6
|
287 |
+
# via -r requirements.in
|
288 |
+
openai==1.30.3
|
289 |
+
# via
|
290 |
+
# -r requirements.in
|
291 |
+
# langchain-openai
|
292 |
+
# litellm
|
293 |
+
opentelemetry-api==1.24.0
|
294 |
+
# via
|
295 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
296 |
+
# opentelemetry-exporter-otlp-proto-http
|
297 |
+
# opentelemetry-sdk
|
298 |
+
opentelemetry-exporter-otlp==1.24.0
|
299 |
+
# via -r requirements.in
|
300 |
+
opentelemetry-exporter-otlp-proto-common==1.24.0
|
301 |
+
# via
|
302 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
303 |
+
# opentelemetry-exporter-otlp-proto-http
|
304 |
+
opentelemetry-exporter-otlp-proto-grpc==1.24.0
|
305 |
+
# via opentelemetry-exporter-otlp
|
306 |
+
opentelemetry-exporter-otlp-proto-http==1.24.0
|
307 |
+
# via opentelemetry-exporter-otlp
|
308 |
+
opentelemetry-proto==1.24.0
|
309 |
+
# via
|
310 |
+
# opentelemetry-exporter-otlp-proto-common
|
311 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
312 |
+
# opentelemetry-exporter-otlp-proto-http
|
313 |
+
opentelemetry-sdk==1.24.0
|
314 |
+
# via
|
315 |
+
# -r requirements.in
|
316 |
+
# opentelemetry-exporter-otlp-proto-grpc
|
317 |
+
# opentelemetry-exporter-otlp-proto-http
|
318 |
+
opentelemetry-semantic-conventions==0.45b0
|
319 |
+
# via opentelemetry-sdk
|
320 |
+
|
321 |
+
packaging==23.2
|
322 |
+
# via
|
323 |
+
# huggingface-hub
|
324 |
+
# ipykernel
|
325 |
+
# langchain-core
|
326 |
+
# marshmallow
|
327 |
+
# matplotlib
|
328 |
+
parso==0.8.4
|
329 |
+
# via jedi
|
330 |
+
pillow==10.3.0
|
331 |
+
# via
|
332 |
+
# -r requirements.in
|
333 |
+
# matplotlib
|
334 |
+
# pyscreeze
|
335 |
+
platformdirs==4.2.2
|
336 |
+
# via
|
337 |
+
# jupyter-core
|
338 |
+
# open-interpreter
|
339 |
+
prompt-toolkit==3.0.47
|
340 |
+
# via ipython
|
341 |
+
proto-plus==1.23.0
|
342 |
+
# via
|
343 |
+
# google-ai-generativelanguage
|
344 |
+
# google-api-core
|
345 |
+
protobuf==4.25.3
|
346 |
+
# via
|
347 |
+
# google-ai-generativelanguage
|
348 |
+
# google-api-core
|
349 |
+
# google-generativeai
|
350 |
+
# googleapis-common-protos
|
351 |
+
# grpcio-status
|
352 |
+
# opentelemetry-proto
|
353 |
+
# proto-plus
|
354 |
+
psutil==5.9.8
|
355 |
+
# via
|
356 |
+
# ipykernel
|
357 |
+
# memory-profiler
|
358 |
+
# open-interpreter
|
359 |
+
pure-eval==0.2.2
|
360 |
+
# via stack-data
|
361 |
+
pyasn1==0.6.0
|
362 |
+
# via
|
363 |
+
# pyasn1-modules
|
364 |
+
# rsa
|
365 |
+
pyasn1-modules==0.4.0
|
366 |
+
# via google-auth
|
367 |
+
pyautogui==0.9.54
|
368 |
+
# via -r requirements.in
|
369 |
+
pycparser==2.22
|
370 |
+
# via cffi
|
371 |
+
pydantic==2.7.2
|
372 |
+
# via
|
373 |
+
# -r requirements.in
|
374 |
+
# google-generativeai
|
375 |
+
# groq
|
376 |
+
# langchain
|
377 |
+
# langchain-core
|
378 |
+
# langsmith
|
379 |
+
# open-interpreter
|
380 |
+
# openai
|
381 |
+
pydantic-core==2.18.3
|
382 |
+
# via pydantic
|
383 |
+
pydub==0.25.1
|
384 |
+
# via -r requirements.in
|
385 |
+
pygame==2.5.2
|
386 |
+
# via -r requirements.in
|
387 |
+
pygetwindow==0.0.9
|
388 |
+
# via pyautogui
|
389 |
+
pygments==2.18.0
|
390 |
+
# via
|
391 |
+
# ipython
|
392 |
+
# rich
|
393 |
+
pymsgbox==1.0.9
|
394 |
+
# via pyautogui
|
395 |
+
pyparsing==3.1.2
|
396 |
+
# via
|
397 |
+
# httplib2
|
398 |
+
# matplotlib
|
399 |
+
pyperclip==1.8.2
|
400 |
+
# via
|
401 |
+
# -r requirements.in
|
402 |
+
# mouseinfo
|
403 |
+
pyqt5==5.15.10
|
404 |
+
# via -r requirements.in
|
405 |
+
#pyqt5-qt5==5.15.2 any compatible version
|
406 |
+
pyqt5-qt5~=5.15.2
|
407 |
+
# via pyqt5
|
408 |
+
pyqt5-sip==12.13.0
|
409 |
+
# via pyqt5
|
410 |
+
pyreadline3==3.4.1
|
411 |
+
# via open-interpreter
|
412 |
+
pyrect==0.2.0
|
413 |
+
# via pygetwindow
|
414 |
+
pyscreeze==0.1.30
|
415 |
+
# via
|
416 |
+
# -r requirements.in
|
417 |
+
# pyautogui
|
418 |
+
python-dateutil==2.9.0.post0
|
419 |
+
# via
|
420 |
+
# jupyter-client
|
421 |
+
# matplotlib
|
422 |
+
python-dotenv==1.0.0
|
423 |
+
# via
|
424 |
+
# -r requirements.in
|
425 |
+
# litellm
|
426 |
+
# upsonic
|
427 |
+
pytweening==1.2.0
|
428 |
+
# via pyautogui
|
429 |
+
#pywin32==306
|
430 |
+
# via jupyter-core
|
431 |
+
pyyaml==6.0.1
|
432 |
+
# via
|
433 |
+
# huggingface-hub
|
434 |
+
# langchain
|
435 |
+
# langchain-community
|
436 |
+
# langchain-core
|
437 |
+
# open-interpreter
|
438 |
+
pyzmq==26.0.3
|
439 |
+
# via
|
440 |
+
# ipykernel
|
441 |
+
# jupyter-client
|
442 |
+
readchar==4.1.0
|
443 |
+
# via inquirer
|
444 |
+
regex==2024.5.15
|
445 |
+
# via
|
446 |
+
# nltk
|
447 |
+
# tiktoken
|
448 |
+
requests==2.32.3
|
449 |
+
# via
|
450 |
+
# google-api-core
|
451 |
+
# html2image
|
452 |
+
# huggingface-hub
|
453 |
+
# langchain
|
454 |
+
# langchain-community
|
455 |
+
# langchainhub
|
456 |
+
# langsmith
|
457 |
+
# litellm
|
458 |
+
# opentelemetry-exporter-otlp-proto-http
|
459 |
+
# tiktoken
|
460 |
+
# upsonic
|
461 |
+
rich==13.7.1
|
462 |
+
# via
|
463 |
+
# open-interpreter
|
464 |
+
# upsonic
|
465 |
+
rsa==4.9
|
466 |
+
# via google-auth
|
467 |
+
runs==1.2.2
|
468 |
+
# via editor
|
469 |
+
scipy==1.13.1
|
470 |
+
# via -r requirements.in
|
471 |
+
send2trash==1.8.3
|
472 |
+
# via open-interpreter
|
473 |
+
six==1.16.0
|
474 |
+
# via
|
475 |
+
# asttokens
|
476 |
+
# blessed
|
477 |
+
# fire
|
478 |
+
# open-interpreter
|
479 |
+
# python-dateutil
|
480 |
+
smmap==5.0.1
|
481 |
+
# via gitdb
|
482 |
+
sniffio==1.3.1
|
483 |
+
# via
|
484 |
+
# anyio
|
485 |
+
# groq
|
486 |
+
# httpx
|
487 |
+
# openai
|
488 |
+
soundcard==0.4.3
|
489 |
+
# via -r requirements.in
|
490 |
+
sounddevice==0.4.6
|
491 |
+
# via -r requirements.in
|
492 |
+
soundfile==0.12.1
|
493 |
+
# via -r requirements.in
|
494 |
+
sqlalchemy==2.0.30
|
495 |
+
# via
|
496 |
+
# langchain
|
497 |
+
# langchain-community
|
498 |
+
stack-data==0.6.3
|
499 |
+
# via ipython
|
500 |
+
tenacity==8.3.0
|
501 |
+
# via
|
502 |
+
# langchain
|
503 |
+
# langchain-community
|
504 |
+
# langchain-core
|
505 |
+
termcolor==2.4.0
|
506 |
+
# via fire
|
507 |
+
tiktoken==0.6.0
|
508 |
+
# via
|
509 |
+
# langchain-openai
|
510 |
+
# litellm
|
511 |
+
# open-interpreter
|
512 |
+
# tokentrim
|
513 |
+
tokenizers==0.19.1
|
514 |
+
# via litellm
|
515 |
+
tokentrim==0.1.13
|
516 |
+
# via open-interpreter
|
517 |
+
toml==0.10.2
|
518 |
+
# via open-interpreter
|
519 |
+
tornado==6.4.1
|
520 |
+
# via
|
521 |
+
# ipykernel
|
522 |
+
# jupyter-client
|
523 |
+
tqdm==4.66.4
|
524 |
+
# via
|
525 |
+
# google-generativeai
|
526 |
+
# huggingface-hub
|
527 |
+
# nltk
|
528 |
+
# openai
|
529 |
+
traitlets==5.14.3
|
530 |
+
# via
|
531 |
+
# comm
|
532 |
+
# ipykernel
|
533 |
+
# ipython
|
534 |
+
# jupyter-client
|
535 |
+
# jupyter-core
|
536 |
+
# matplotlib-inline
|
537 |
+
types-requests==2.32.0.20240602
|
538 |
+
# via langchainhub
|
539 |
+
typing-extensions==4.12.2
|
540 |
+
# via
|
541 |
+
# anyio
|
542 |
+
# google-generativeai
|
543 |
+
# groq
|
544 |
+
# huggingface-hub
|
545 |
+
# ipython
|
546 |
+
# openai
|
547 |
+
# opentelemetry-sdk
|
548 |
+
# pydantic
|
549 |
+
# pydantic-core
|
550 |
+
# sqlalchemy
|
551 |
+
# typing-inspect
|
552 |
+
typing-inspect==0.9.0
|
553 |
+
# via dataclasses-json
|
554 |
+
upsonic==0.28.4
|
555 |
+
# via -r requirements.in
|
556 |
+
uritemplate==4.1.1
|
557 |
+
# via google-api-python-client
|
558 |
+
urllib3==2.2.1
|
559 |
+
# via
|
560 |
+
# requests
|
561 |
+
# types-requests
|
562 |
+
uuid6==2024.1.12
|
563 |
+
# via langgraph
|
564 |
+
wcwidth==0.2.13
|
565 |
+
# via
|
566 |
+
# blessed
|
567 |
+
# prompt-toolkit
|
568 |
+
websocket-client==1.8.0
|
569 |
+
# via html2image
|
570 |
+
wget==3.2
|
571 |
+
# via open-interpreter
|
572 |
+
wrapt==1.16.0
|
573 |
+
# via deprecated
|
574 |
+
xmod==1.8.1
|
575 |
+
# via
|
576 |
+
# editor
|
577 |
+
# runs
|
578 |
+
yarl==1.9.4
|
579 |
+
# via aiohttp
|
580 |
+
zipp==3.19.2
|
581 |
+
# via importlib-metadata
|
582 |
+
|
583 |
+
# The following packages are considered to be unsafe in a requirements file:
|
584 |
+
# setuptools
|
585 |
+
|
586 |
+
|
587 |
+
|
588 |
+
# default tools
|
589 |
+
pyperclip==1.8.2
|
590 |
+
google==3.0.0
|
591 |
+
duckduckgo-search==5.3.0
|
592 |
+
beautifulsoup4==4.12.3
|
run.py
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from gpt_computer_assistant import start
|
2 |
+
|
3 |
+
|
4 |
+
|
5 |
+
start()
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
|
setup.py
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/python3
|
2 |
+
# -*- coding: utf-8 -*-
|
3 |
+
|
4 |
+
from setuptools import setup
|
5 |
+
import platform
|
6 |
+
|
7 |
+
|
8 |
+
# Read the requirements from the requirements.txt file
|
9 |
+
with open("requirements.txt") as fp:
|
10 |
+
install_requires = fp.read().splitlines()
|
11 |
+
|
12 |
+
if platform.system() in ["Linux", "Windows"]:
|
13 |
+
install_requires.append("AppOpener==1.7")
|
14 |
+
|
15 |
+
elif platform.system() == "Darwin": # Darwin is the system name for macOS
|
16 |
+
install_requires.append("MacAppOpener==0.0.5") # Replace with actual macOS specific package
|
17 |
+
|
18 |
+
|
19 |
+
|
20 |
+
setup(
|
21 |
+
name="gpt_computer_assistant",
|
22 |
+
version="0.19.1",
|
23 |
+
description="""GPT""",
|
24 |
+
long_description="".join(open("README.md", encoding="utf-8").readlines()),
|
25 |
+
long_description_content_type="text/markdown",
|
26 |
+
url="https://github.com/onuratakan/gpt-computer-assistant",
|
27 |
+
author="Onur Atakan ULUSOY",
|
28 |
+
author_email="[email protected]",
|
29 |
+
license="MIT",
|
30 |
+
packages=[
|
31 |
+
"gpt_computer_assistant",
|
32 |
+
"gpt_computer_assistant.agent",
|
33 |
+
"gpt_computer_assistant.gui",
|
34 |
+
"gpt_computer_assistant.screen",
|
35 |
+
"gpt_computer_assistant.utils",
|
36 |
+
"gpt_computer_assistant.audio",
|
37 |
+
],
|
38 |
+
include_package_data=True,
|
39 |
+
install_requires=[],
|
40 |
+
entry_points={
|
41 |
+
"console_scripts": ["computerassistant=gpt_computer_assistant.start:start"],
|
42 |
+
},
|
43 |
+
python_requires=">= 3.9",
|
44 |
+
zip_safe=False,
|
45 |
+
extras_require={
|
46 |
+
"base": install_requires,
|
47 |
+
"default": install_requires,
|
48 |
+
"agentic": ["crewai==0.30.11"],
|
49 |
+
"wakeword": ["pvporcupine", "pyaudio"],
|
50 |
+
"api": ["flask==3.0.3",],
|
51 |
+
},
|
52 |
+
)
|