-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·139 lines (119 loc) · 3.73 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·139 lines (119 loc) · 3.73 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/bin/bash
# setup.sh - Skrypt instalacyjny dla text2sql na Fedora
set -e
echo "Konfiguracja text2sql na Fedora..."
# Sprawdź, czy skrypt jest uruchamiany jako root
if [ "$(id -u)" -eq 0 ]; then
echo "Proszę uruchomić ten skrypt jako zwykły użytkownik, nie jako root."
exit 1
fi
# Instalacja zależności systemowych
echo "Instalacja zależności systemowych..."
sudo dnf install -y python3 python3-pip python3-devel sqlite sqlite-devel gcc gcc-c++
# Tworzenie wirtualnego środowiska
echo "Tworzenie wirtualnego środowiska Python..."
python3 -m venv venv
source venv/bin/activate
# Instalacja zależności Pythona
echo "Instalacja zależności Pythona..."
pip install --upgrade pip
pip install mcp fastapi uvicorn pydantic requests
# Tworzenie katalogu projektu, jeśli nie istnieje
mkdir -p text2sql_mcp
cd text2sql_mcp
# Sprawdzenie, czy pliki projektu istnieją w bieżącym katalogu
files_to_check=("mcp_server.py" "cli_client.py" "rest_api.py" "tinyllm_client.py" "start_tinyllm.py")
all_files_exist=true
for file in "${files_to_check[@]}"; do
if [ ! -f "$file" ]; then
all_files_exist=false
break
fi
done
if [ "$all_files_exist" = true ]; then
echo "Pliki projektu już istnieją w bieżącym katalogu."
else
echo "Pobieranie plików projektu..."
# W rzeczywistej implementacji tutaj byłoby pobieranie plików z repozytorium
# Dla uproszczenia, zakładamy, że pliki już są dostępne
echo "UWAGA: Pliki projektu muszą być dostępne w bieżącym katalogu."
fi
# Nadawanie uprawnień wykonywania skryptom
echo "Nadawanie uprawnień wykonywania skryptom..."
chmod +x mcp_server.py cli_client.py rest_api.py tinyllm_client.py start_tinyllm.py
# Tworzenie skryptu pomocniczego do uruchamiania
cat > run_text2sql.sh << 'EOF'
#!/bin/bash
# Funkcja do wyświetlania pomocy
show_help() {
echo "Text2SQL - Narzędzie do tłumaczenia języka naturalnego na SQL"
echo ""
echo "Użycie:"
echo " ./run_text2sql.sh [opcja]"
echo ""
echo "Opcje:"
echo " shell Uruchamia interaktywny shell"
echo " api Uruchamia serwer API REST"
echo " tinyllm Uruchamia serwis TinyLLM"
echo " all Uruchamia wszystkie komponenty"
echo " help Wyświetla tę pomoc"
echo ""
}
# Aktywacja wirtualnego środowiska
source venv/bin/activate
# Obsługa argumentów
case "$1" in
shell)
echo "Uruchamianie interaktywnego shella..."
python cli_client.py
;;
api)
echo "Uruchamianie serwera API REST..."
python rest_api.py
;;
tinyllm)
echo "Uruchamianie serwisu TinyLLM..."
python start_tinyllm.py
;;
all)
echo "Uruchamianie wszystkich komponentów..."
# Uruchamianie w tle
python start_tinyllm.py &
tinyllm_pid=$!
sleep 5
python rest_api.py &
api_pid=$!
# Uruchamianie shella w pierwszym planie
python cli_client.py
# Zatrzymywanie procesów uruchomionych w tle
kill $api_pid $tinyllm_pid
;;
help|*)
show_help
;;
esac
EOF
chmod +x run_text2sql.sh
echo
echo "Instalacja zakończona pomyślnie!"
echo
echo "Aby uruchomić text2sql:"
echo
echo "1. Uruchom serwis TinyLLM (w osobnym terminalu):"
echo " ./run_text2sql.sh tinyllm"
echo
echo "2. Uruchom interfejs API REST (opcjonalnie, w osobnym terminalu):"
echo " ./run_text2sql.sh api"
echo
echo "3. Uruchom interaktywny shell:"
echo " ./run_text2sql.sh shell"
echo
echo "Lub uruchom wszystko naraz:"
echo " ./run_text2sql.sh all"
echo
echo "Przykładowe komendy w interaktywnym shellu:"
echo "- create a user named John"
echo "- show all users"
echo "- create a product named Laptop price 999.99"
echo "- show all products"
echo