jeongsoo commited on
Commit
1cbdaf4
·
1 Parent(s): 1c12943

release err fix

Browse files
Files changed (5) hide show
  1. DESCRIPTION.md +21 -0
  2. README.md +90 -13
  3. app.py +3 -33
  4. gradio_interface.py +38 -0
  5. title.md +1 -0
DESCRIPTION.md ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LocalPCAgent 웹 인터페이스
2
+
3
+ 이 Space는 LocalPCAgent 서버와 통신하여 로컬 PC의 기능을 원격으로 제어하고 관리할 수 있는 웹 인터페이스를 제공합니다.
4
+
5
+ ## 사용 방법
6
+
7
+ 1. 로컬 PC에서 LocalPCAgent 서버와 ngrok을 실행합니다.
8
+ 2. ngrok에서 제공하는 URL을 이 웹앱에 입력합니다.
9
+ 3. '연결' 버튼을 클릭하여 서버와 통신을 시작합니다.
10
+ 4. 다양한 기능 탭을 사용하여 로컬 PC의 장치 및 프로그램을 관리합니다.
11
+
12
+ ## 주요 기능
13
+
14
+ - 서버 상태 모니터링
15
+ - 장치 목록 조회 및 관리
16
+ - 프로그램 실행
17
+ - 고급 API 요청 테스트
18
+
19
+ ## 주의사항
20
+
21
+ 이 웹앱은 개발 및 테스트 목적으로 제공됩니다. 인증 메커니즘 없이 ngrok URL만 알면 누구나 접속할 수 있으므로, 보안이 중요한 환경에서는 주의하여 사용하세요.
README.md CHANGED
@@ -1,13 +1,90 @@
1
- ---
2
- title: TestWebApp
3
- emoji: 😻
4
- colorFrom: green
5
- colorTo: pink
6
- sdk: gradio
7
- sdk_version: 5.28.0
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LocalPCAgent HuggingFace 웹 인터페이스
2
+
3
+ 웹앱은 [LocalPCAgent](https://github.com/yourusername/LocalPCAgent) 서버와 통신하여 로컬 PC의 기능을 원격으로 제어하고 테스트할 수 있는 인터페이스를 제공합니다.
4
+
5
+ ## 특징
6
+
7
+ - 직관적인 웹 기반 인터페이스
8
+ - ngrok URL을 통한 서버 연결
9
+ - 서버 상태 모니터링
10
+ - 장치 및 프로그램 관리
11
+ - 에코 테스트 및 커스텀 요청 기능
12
+ - 상세한 로그 기록
13
+
14
+ ## 사용 방법
15
+
16
+ 1. **서버 URL 설정**
17
+ - 로컬 PC에서 ngrok을 사용하여 LocalPCAgent 서버를 실행합니다.
18
+ - 생성된 ngrok URL을 웹앱의 입력 필드에 입력하고 '연결' 버튼을 클릭합니다.
19
+
20
+ 2. **기본 기능**
21
+ - '상태 확인' 버튼을 클릭하여 서버 상태를 확인합니다.
22
+ - 메시지 입력 후 '에코 테스트' 버튼을 클릭하여 UDP 통신을 테스트합니다.
23
+
24
+ 3. **장치 관리**
25
+ - '장치 목록 가져오기' 버튼을 클릭하여 연결된 장치를 조회합니다.
26
+ - 장치를 선택하고 '장치 정보 가져오기' 버튼을 클릭하여 상세 정보를 확인합니다.
27
+
28
+ 4. **프로그램 실행**
29
+ - '프로그램 목록 가져오기' 버튼을 클릭하여 실행 가능한 프로그램을 조회합니다.
30
+ - 프로그램을 선택하고 '프로그램 실행' 버튼을 클릭하여 로컬 PC에서 실행합니다.
31
+
32
+ 5. **고급 기능**
33
+ - 커스텀 API 요청을 작성하고 전송할 수 있습니다.
34
+ - 다양한 엔드포인트 및 HTTP 메소드 사용 가능
35
+
36
+ ## 로컬에서 실행하기
37
+
38
+ 1. 이 저장소를 클론합니다.
39
+ 2. 웹 서버(예: Python의 `http.server`)를 사용하여 로컬에서 실행합니다:
40
+ ```bash
41
+ python -m http.server 8080
42
+ ```
43
+ 3. 웹 브라우저에서 `http://localhost:8080`으로 접속합니다.
44
+
45
+ ## HuggingFace Spaces 배포
46
+
47
+ 이 웹앱은 [HuggingFace Spaces](https://huggingface.co/spaces)에 쉽게 배포할 수 있습니다:
48
+
49
+ 1. HuggingFace 계정으로 로그인합니다.
50
+ 2. 새 Space를 생성하고 "Static" 템플릿을 선택합니다.
51
+ 3. 이 저장소의 파일을 Space에 업로드합니다.
52
+
53
+ ## 보안 고려사항
54
+
55
+ 이 웹앱은 개발 및 테스트 목적으로 설계되었습니다. 프로덕션 환경에서 사용하기 전에 다음 사항을 고려하세요:
56
+
57
+ 1. ngrok은 임시 URL을 제공하므로 보안에 주의해야 합니다.
58
+ 2. 인증 메커니즘이 없으므로 누구나 URL만 알면 접근할 수 있습니다.
59
+ 3. 프로그램 실행 기능은 시스템에 영향을 줄 수 있으므로 신중하게 사용해야 합니다.
60
+ 4. 민감한 정보를 포함한 시스템에서는 추가 보안 조치가 필요합니다.
61
+
62
+ ## 기술 스택
63
+
64
+ - HTML5
65
+ - CSS3
66
+ - JavaScript (ES6+)
67
+ - LocalStorage API (URL 저장용)
68
+ - Fetch API (HTTP 요청용)
69
+
70
+ ## API 참조
71
+
72
+ 웹앱에서 사용하는 주요 API 엔드포인트:
73
+
74
+ | 엔드포인트 | 메소드 | 설명 |
75
+ |------------|--------|------|
76
+ | `/health` | GET | 서버 상태 확인 |
77
+ | `/api/status` | GET | 상세 서버 정보 조회 |
78
+ | `/api/send` | POST | UDP 메시지 전송 |
79
+ | `/api/devices` | GET | 장치 목록 조회 |
80
+ | `/api/device/{id}/info` | GET | 장치 상세 정보 조회 |
81
+ | `/api/programs` | GET | 프로그램 목록 조회 |
82
+ | `/api/programs/{id}/execute` | POST | 프로그램 실행 |
83
+
84
+ ## 라이선스
85
+
86
+ MIT 라이선스
87
+
88
+ ## 기여하기
89
+
90
+ 이슈 및 풀 리퀘스트는 언제든지 환영합니다. 버그 리포트, 기능 요청, 또는 코드 기여를 통해 프로젝트를 개선하는 데 도움을 주세요.
app.py CHANGED
@@ -1,36 +1,6 @@
1
  import gradio as gr
2
- import os
3
-
4
- # 웹앱 파일들 경로
5
- HTML_PATH = os.path.join(os.path.dirname(__file__), "index.html")
6
- CSS_PATH = os.path.join(os.path.dirname(__file__), "style.css")
7
- JS_PATH = os.path.join(os.path.dirname(__file__), "app.js")
8
-
9
- # HTML 파일 불러오기
10
- with open(HTML_PATH, "r", encoding="utf-8") as f:
11
- html_content = f.read()
12
-
13
- # CSS 파일 불러오기
14
- with open(CSS_PATH, "r", encoding="utf-8") as f:
15
- css_content = f.read()
16
-
17
- # JS 파일 불러오기
18
- with open(JS_PATH, "r", encoding="utf-8") as f:
19
- js_content = f.read()
20
-
21
- # HTML에 CSS와 JS 직접 삽입 (외부 참조 대신)
22
- html_with_inline_assets = html_content.replace(
23
- '<link rel="stylesheet" href="style.css">',
24
- f'<style>{css_content}</style>'
25
- ).replace(
26
- '<script src="app.js"></script>',
27
- f'<script>{js_content}</script>'
28
- )
29
-
30
- # Gradio 인터페이스 생성
31
- def create_interface():
32
- return gr.HTML(html_with_inline_assets)
33
 
34
  # Gradio 앱 시작
35
- iface = create_interface()
36
- iface.launch()
 
1
  import gradio as gr
2
+ from gradio_interface import demo
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
  # Gradio 앱 시작
5
+ if __name__ == "__main__":
6
+ demo.launch()
gradio_interface.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+
4
+ def create_webapp():
5
+ # 웹앱 파일들 경로
6
+ HTML_PATH = os.path.join(os.path.dirname(__file__), "index.html")
7
+ CSS_PATH = os.path.join(os.path.dirname(__file__), "style.css")
8
+ JS_PATH = os.path.join(os.path.dirname(__file__), "app.js")
9
+
10
+ # HTML 파일 불러오기
11
+ with open(HTML_PATH, "r", encoding="utf-8") as f:
12
+ html_content = f.read()
13
+
14
+ # CSS 파일 불러오기
15
+ with open(CSS_PATH, "r", encoding="utf-8") as f:
16
+ css_content = f.read()
17
+
18
+ # JS 파일 불러오기
19
+ with open(JS_PATH, "r", encoding="utf-8") as f:
20
+ js_content = f.read()
21
+
22
+ # HTML에 CSS와 JS 직접 삽입 (외부 참조 대신)
23
+ html_with_inline_assets = html_content.replace(
24
+ '<link rel="stylesheet" href="style.css">',
25
+ f'<style>{css_content}</style>'
26
+ ).replace(
27
+ '<script src="app.js"></script>',
28
+ f'<script>{js_content}</script>'
29
+ )
30
+
31
+ # Gradio 블록 생성
32
+ with gr.Blocks(css="footer {display:none}") as demo:
33
+ gr.HTML(html_with_inline_assets)
34
+
35
+ return demo
36
+
37
+ # 웹 앱 생성 및 반환
38
+ demo = create_webapp()
title.md ADDED
@@ -0,0 +1 @@
 
 
1
+ LocalPCAgent 제어 인터페이스