forked from SeungJin051/LangChain-StoryBot-main
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
53 lines (41 loc) · 1.69 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Lib import
import os
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import CharacterTextSplitter
from playsound import playsound
# Module import
from stt import request
from interface_module import interface
from API_KEY import pwd
from assist.gpio import led_gpio
import subprocess
import Jetson.GPIO as GPIO
###################################################################################
########### 깃 커밋할 때 [main], [role]의 API KEY는 공란으로 입력해주세요 #############
##################################################################################
# OpenAI KEY
os.environ["OPENAI_API_KEY"] = pwd.key
# PDF 로더 초기화 및 로드
loader = PyPDFLoader("/home/jetson/Desktop/LangChain-StoryBot-main/assist/story/snow_white.pdf")
documents = loader.load()
# chunk : text를 자르는 단위, 1000글자당 1chunk
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap = 0)
stroy_documents = text_splitter.split_documents(documents)
def run():
led_gpio.RedLed()
playsound("/home/jetson/Desktop/LangChain-StoryBot-main/assist/wav/start.wav")
menu_state = False
fan = "sudo sh -c 'echo 100 > /sys/devices/pwm-fan/target_pwm'"
subprocess.run(fan, shell=True)
while True:
# 사용자의 두번째 메뉴 선택부터 음성을 출력
if menu_state:
playsound("/home/jetson/Desktop/LangChain-StoryBot-main/assist/wav/select_menu.wav")
led_gpio.GreenLed()
command = request()
if not command:
run()
interface.handle_command(command, documents)
menu_state = True
if __name__ == "__main__":
run()