1
0
Эх сурвалжийг харах

Merge pull request #210 from GaetanLepage/fix-main-install

Improve setup.py for proper installation
Alex Cheema 7 сар өмнө
parent
commit
fa42f789ee
36 өөрчлөгдсөн 15 нэмэгдсэн , 10 устгасан
  1. 7 7
      README.md
  2. 1 1
      exo/api/chatgpt_api.py
  3. 1 1
      exo/helpers.py
  4. 0 0
      exo/inference/tinygrad/__init__.py
  5. 0 0
      exo/inference/tinygrad/models/__init__.py
  6. 4 1
      exo/main.py
  7. 0 0
      exo/networking/tailscale/__init__.py
  8. 0 0
      exo/networking/udp/__init__.py
  9. 0 0
      exo/tinychat/common.css
  10. 0 0
      exo/tinychat/favicon.svg
  11. 0 0
      exo/tinychat/index.css
  12. 0 0
      exo/tinychat/index.html
  13. 0 0
      exo/tinychat/index.js
  14. 0 0
      exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js
  15. 0 0
      exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js
  16. 0 0
      exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js
  17. 0 0
      exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css
  18. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css
  19. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf
  20. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2
  21. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf
  22. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2
  23. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.ttf
  24. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2
  25. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.ttf
  26. 0 0
      exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.woff2
  27. 0 0
      exo/tinychat/static/fonts.googleapis.com/css2
  28. 0 0
      exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js
  29. 0 0
      exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css
  30. 0 0
      exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js
  31. 0 0
      exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js
  32. 0 0
      exo/tinychat/static/unpkg.com/dompurify@3.1.5/dist/purify.min.js
  33. 0 0
      exo/tinychat/static/unpkg.com/marked-highlight@2.1.2/lib/index.umd.js
  34. 0 0
      exo/tinychat/static/unpkg.com/marked@13.0.0/marked.min.js
  35. 0 0
      exo/tinychat/update_deps.py
  36. 2 0
      setup.py

+ 7 - 7
README.md

@@ -116,12 +116,12 @@ source install.sh
 #### Device 1:
 
 ```sh
-python3 main.py
+exo
 ```
 
 #### Device 2:
 ```sh
-python3 main.py
+exo
 ```
 
 That's it! No configuration required - exo will automatically discover the other device(s).
@@ -187,14 +187,14 @@ curl http://localhost:8000/v1/chat/completions \
 #### Device 1 (MacOS):
 
 ```sh
-python3 main.py --inference-engine tinygrad
+exo --inference-engine tinygrad
 ```
 
 Here we explicitly tell exo to use the **tinygrad** inference engine.
 
 #### Device 2 (Linux):
 ```sh
-python3 main.py
+exo
 ```
 
 Linux devices will automatically default to using the **tinygrad** inference engine.
@@ -207,18 +207,18 @@ You can read about tinygrad-specific env vars [here](https://docs.tinygrad.org/e
 Enable debug logs with the DEBUG environment variable (0-9).
 
 ```sh
-DEBUG=9 python3 main.py
+DEBUG=9 exo
 ```
 
 For the **tinygrad** inference engine specifically, there is a separate DEBUG flag `TINYGRAD_DEBUG` that can be used to enable debug logs (1-6).
 
 ```sh
-TINYGRAD_DEBUG=2 python3 main.py
+TINYGRAD_DEBUG=2 exo
 ```
 
 ## Known Issues
 
-- On some versions of MacOS/Python, certificates are not installed properly which can lead to SSL errors (e.g. SSL error with huggingface.co). To fix this, run the Install Certificates command, usually: 
+- On some versions of MacOS/Python, certificates are not installed properly which can lead to SSL errors (e.g. SSL error with huggingface.co). To fix this, run the Install Certificates command, usually:
 
 ```sh
 /Applications/Python 3.x/Install Certificates.command

+ 1 - 1
exo/api/chatgpt_api.py

@@ -176,7 +176,7 @@ class ChatGPTAPI:
     cors.add(self.app.router.add_post("/chat/completions", self.handle_post_chat_completions), {"*": cors_options})
     cors.add(self.app.router.add_post("/v1/chat/completions", self.handle_post_chat_completions), {"*": cors_options})
 
-    self.static_dir = Path(__file__).parent.parent.parent/"tinychat/examples/tinychat"
+    self.static_dir = Path(__file__).parent.parent/"tinychat"
     self.app.router.add_get("/", self.handle_root)
     self.app.router.add_static("/", self.static_dir, name="static")
 

+ 1 - 1
exo/helpers.py

@@ -170,7 +170,7 @@ def is_valid_uuid(val):
 
 
 def get_or_create_node_id():
-  NODE_ID_FILE = Path(os.path.dirname(os.path.abspath(__file__)))/".exo_node_id"
+  NODE_ID_FILE = Path(tempfile.gettempdir()) / ".exo_node_id"
   try:
     if NODE_ID_FILE.is_file():
       with open(NODE_ID_FILE, "r") as f:

+ 0 - 0
exo/inference/tinygrad/__init__.py


+ 0 - 0
exo/inference/tinygrad/models/__init__.py


+ 4 - 1
main.py → exo/main.py

@@ -186,7 +186,7 @@ async def main():
     await asyncio.Event().wait()
 
 
-if __name__ == "__main__":
+def run():
   loop = asyncio.new_event_loop()
   asyncio.set_event_loop(loop)
   try:
@@ -196,3 +196,6 @@ if __name__ == "__main__":
   finally:
     loop.run_until_complete(shutdown(signal.SIGTERM, loop))
     loop.close()
+
+if __name__ == "__main__":
+  run()

+ 0 - 0
exo/networking/tailscale/__init__.py


+ 0 - 0
exo/networking/udp/__init__.py


+ 0 - 0
tinychat/examples/tinychat/common.css → exo/tinychat/common.css


+ 0 - 0
tinychat/examples/tinychat/favicon.svg → exo/tinychat/favicon.svg


+ 0 - 0
tinychat/examples/tinychat/index.css → exo/tinychat/index.css


+ 0 - 0
tinychat/examples/tinychat/index.html → exo/tinychat/index.html


+ 0 - 0
tinychat/examples/tinychat/index.js → exo/tinychat/index.js


+ 0 - 0
tinychat/examples/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js → exo/tinychat/static/cdn.jsdelivr.net/npm/@alpine-collective/toolkit@1.0.2/dist/cdn.min.js


+ 0 - 0
tinychat/examples/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js → exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/focus@3.x.x/dist/cdn.min.js


+ 0 - 0
tinychat/examples/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js → exo/tinychat/static/cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js


+ 0 - 0
tinychat/examples/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css → exo/tinychat/static/cdn.jsdelivr.net/npm/purecss@3.0.0/build/base-min.css


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.ttf


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2 → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-brands-400.woff2


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.ttf


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2 → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-regular-400.woff2


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.ttf → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.ttf


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2 → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-solid-900.woff2


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.ttf → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.ttf


+ 0 - 0
tinychat/examples/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.woff2 → exo/tinychat/static/cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/webfonts/fa-v4compatibility.woff2


+ 0 - 0
tinychat/examples/tinychat/static/fonts.googleapis.com/css2 → exo/tinychat/static/fonts.googleapis.com/css2


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js → exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css → exo/tinychat/static/unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/vs2015.min.css


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js → exo/tinychat/static/unpkg.com/@marcreichel/alpine-autosize@1.3.x/dist/alpine-autosize.min.js


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js → exo/tinychat/static/unpkg.com/alpinejs@3.x.x/dist/cdn.min.js


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/dompurify@3.1.5/dist/purify.min.js → exo/tinychat/static/unpkg.com/dompurify@3.1.5/dist/purify.min.js


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/marked-highlight@2.1.2/lib/index.umd.js → exo/tinychat/static/unpkg.com/marked-highlight@2.1.2/lib/index.umd.js


+ 0 - 0
tinychat/examples/tinychat/static/unpkg.com/marked@13.0.0/marked.min.js → exo/tinychat/static/unpkg.com/marked@13.0.0/marked.min.js


+ 0 - 0
tinychat/examples/tinychat/update_deps.py → exo/tinychat/update_deps.py


+ 2 - 0
setup.py

@@ -55,4 +55,6 @@ setup(
   packages=find_packages(),
   install_requires=install_requires,
   extras_require=extras_require,
+  package_data={"exo": ["tinychat/**/*"]},
+  entry_points={"console_scripts": ["exo = exo.main:run"]},
 )