lliu01 commited on
Commit
791dd02
·
verified ·
1 Parent(s): f61b947

Replace original files

Browse files
Files changed (4) hide show
  1. Dockerfile +42 -0
  2. README.md +7 -7
  3. app.py +194 -10
  4. requirements.txt +7 -1
Dockerfile ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM nvidia/cuda:12.1.0-devel-ubuntu22.04 AS dev
2
+
3
+ RUN apt-get update -y \
4
+ && apt-get install -y python3-pip git
5
+
6
+ # Workaround for https://github.com/openai/triton/issues/2507 and
7
+ # https://github.com/pytorch/pytorch/issues/107960 -- hopefully
8
+ # this won't be needed for future versions of this docker image
9
+ # or future versions of triton.
10
+ RUN ldconfig /usr/local/cuda-12.1/compat/
11
+
12
+ WORKDIR /code
13
+
14
+ COPY ./requirements.txt /code/requirements.txt
15
+
16
+ # Set up a new user named "user" with user ID 1000
17
+ RUN useradd -m -u 1000 user
18
+ # Switch to the "user" user
19
+ USER user
20
+ # Set home to the user's home directory
21
+ ENV HOME=/home/user \
22
+ PATH=/home/user/.local/bin:$PATH \
23
+ PYTHONPATH=$HOME/app \
24
+ PYTHONUNBUFFERED=1 \
25
+ GRADIO_ALLOW_FLAGGING=never \
26
+ GRADIO_NUM_PORTS=1 \
27
+ GRADIO_SERVER_NAME=0.0.0.0 \
28
+ GRADIO_THEME=huggingface \
29
+ SYSTEM=spaces
30
+
31
+ RUN pip3 install -U pip
32
+ RUN pip3 install -U Cython ninja
33
+ RUN pip3 install --no-cache-dir --upgrade -r /code/requirements.txt
34
+
35
+ # Set the working directory to the user's home directory
36
+ WORKDIR $HOME/app
37
+ RUN git clone https://github.com/PhungVanDuy/vllm && cd vllm && pip install . && cd ..
38
+
39
+ # Copy the current directory contents into the container at $HOME/app setting the owner to the user
40
+ COPY --chown=user . $HOME/app
41
+
42
+ CMD ["python3", "app.py"]
README.md CHANGED
@@ -1,13 +1,13 @@
1
  ---
2
- title: Test With Feedback
3
- emoji: 💬
4
- colorFrom: yellow
5
- colorTo: purple
6
  sdk: gradio
7
- sdk_version: 4.36.1
8
  app_file: app.py
9
  pinned: false
10
- license: apache-2.0
11
  ---
12
 
13
- An example chatbot using [Gradio](https://gradio.app), [`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/v0.22.2/en/index), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index).
 
1
  ---
2
+ title: FortiOS test
3
+ emoji: 📉
4
+ colorFrom: red
5
+ colorTo: green
6
  sdk: gradio
7
+ sdk_version: 4.39.0
8
  app_file: app.py
9
  pinned: false
10
+ license: other
11
  ---
12
 
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py CHANGED
@@ -56,9 +56,200 @@ def predict(message, history, system_prompt, temperature, max_tokens):
56
  outputs.append(text)
57
  yield "".join(outputs)
58
 
59
- def submit_correction(original_answer, corrected_answer):
60
- # No operation function for the submit button click event
61
- return "Correction submitted!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
63
  if __name__ == "__main__":
64
  args = parse_args()
@@ -70,11 +261,6 @@ if __name__ == "__main__":
70
  )
71
  device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
72
  model = model.to(device)
73
-
74
- correct_answer = gr.Textbox(label="Correct Answer", placeholder="Enter the correct answer if the provided one is wrong")
75
- submit_btn = gr.Button("Submit Correction")
76
- submit_btn.click(fn=submit_correction, inputs=[chatbot, correct_answer], outputs="text")
77
-
78
  gr.ChatInterface(
79
  predict,
80
  title="FortiOS CLI Chat - Demo",
@@ -89,8 +275,6 @@ if __name__ == "__main__":
89
  gr.Textbox(sys_prompt, label="System Prompt"),
90
  gr.Slider(0, 1, 0.5, label="Temperature"),
91
  gr.Slider(100, 2048, 1024, label="Max Tokens"),
92
- correct_answer,
93
- submit_btn,
94
  ],
95
  examples=[
96
  ["Allow all traffic from any source IP address and any source interface 'port10' to any destination IP address and any destination interface 'port9'. This policy will be applied at all times (always) and will allow all services. Additionally, this policy will enable UTM features, use proxy-based inspection mode, and use an SSL-SSH profile named 'deep-custom'. Finally, this policy will also enable source NAT."],
 
56
  outputs.append(text)
57
  yield "".join(outputs)
58
 
59
+ """
60
+ examples=[
61
+ ["How can you move a policy by policy ID?"],
62
+ ["What is the command to enable security profiles in a firewall policy?"],
63
+ ["How do you configure a service group in the GUI?"],
64
+ ["How can you configure the firewall policy change summary in the CLI?"],
65
+ ["How do you disable hardware acceleration for an IPv4 firewall policy in the CLI?"],
66
+ ["How can you enable WAN optimization in a firewall policy using the CLI?"],
67
+ ["What are services in FortiOS and how are they used in firewall policies?"],
68
+ ],
69
+ """
70
+ sys_prompt = """FortiOS firewall configuration in CLI.\n
71
+ Use the firewall config template below to refine your answer, make sure the attributes in the config belongs to the template.\n
72
+ config firewall policy
73
+ edit <policyid>
74
+ set action [accept|deny|ipsec]
75
+ set anti-replay [enable|disable]
76
+ set application-list {string}
77
+ set auth-cert {string}
78
+ set auth-path [enable|disable]
79
+ set auth-redirect-addr {string}
80
+ set auto-asic-offload [enable|disable]
81
+ set av-profile {string}
82
+ set block-notification [enable|disable]
83
+ set captive-portal-exempt [enable|disable]
84
+ set capture-packet [enable|disable]
85
+ set casb-profile {string}
86
+ set cifs-profile {string}
87
+ set comments {var-string}
88
+ set custom-log-fields <field-id1>, <field-id2>, ...
89
+ set decrypted-traffic-mirror {string}
90
+ set delay-tcp-npu-session [enable|disable]
91
+ set diameter-filter-profile {string}
92
+ set diffserv-copy [enable|disable]
93
+ set diffserv-forward [enable|disable]
94
+ set diffserv-reverse [enable|disable]
95
+ set diffservcode-forward {user}
96
+ set diffservcode-rev {user}
97
+ set disclaimer [enable|disable]
98
+ set dlp-profile {string}
99
+ set dnsfilter-profile {string}
100
+ set dsri [enable|disable]
101
+ set dstaddr <name1>, <name2>, ...
102
+ set dstaddr-negate [enable|disable]
103
+ set dstaddr6 <name1>, <name2>, ...
104
+ set dstaddr6-negate [enable|disable]
105
+ set dstintf <name1>, <name2>, ...
106
+ set dynamic-shaping [enable|disable]
107
+ set email-collect [enable|disable]
108
+ set emailfilter-profile {string}
109
+ set fec [enable|disable]
110
+ set file-filter-profile {string}
111
+ set firewall-session-dirty [check-all|check-new]
112
+ set fixedport [enable|disable]
113
+ set fsso-agent-for-ntlm {string}
114
+ set fsso-groups <name1>, <name2>, ...
115
+ set geoip-anycast [enable|disable]
116
+ set geoip-match [physical-location|registered-location]
117
+ set groups <name1>, <name2>, ...
118
+ set http-policy-redirect [enable|disable]
119
+ set icap-profile {string}
120
+ set identity-based-route {string}
121
+ set inbound [enable|disable]
122
+ set inspection-mode [proxy|flow]
123
+ set internet-service [enable|disable]
124
+ set internet-service-custom <name1>, <name2>, ...
125
+ set internet-service-custom-group <name1>, <name2>, ...
126
+ set internet-service-group <name1>, <name2>, ...
127
+ set internet-service-name <name1>, <name2>, ...
128
+ set internet-service-negate [enable|disable]
129
+ set internet-service-src [enable|disable]
130
+ set internet-service-src-custom <name1>, <name2>, ...
131
+ set internet-service-src-custom-group <name1>, <name2>, ...
132
+ set internet-service-src-group <name1>, <name2>, ...
133
+ set internet-service-src-name <name1>, <name2>, ...
134
+ set internet-service-src-negate [enable|disable]
135
+ set internet-service6 [enable|disable]
136
+ set internet-service6-custom <name1>, <name2>, ...
137
+ set internet-service6-custom-group <name1>, <name2>, ...
138
+ set internet-service6-group <name1>, <name2>, ...
139
+ set internet-service6-name <name1>, <name2>, ...
140
+ set internet-service6-negate [enable|disable]
141
+ set internet-service6-src [enable|disable]
142
+ set internet-service6-src-custom <name1>, <name2>, ...
143
+ set internet-service6-src-custom-group <name1>, <name2>, ...
144
+ set internet-service6-src-group <name1>, <name2>, ...
145
+ set internet-service6-src-name <name1>, <name2>, ...
146
+ set internet-service6-src-negate [enable|disable]
147
+ set ippool [enable|disable]
148
+ set ips-sensor {string}
149
+ set ips-voip-filter {string}
150
+ set logtraffic [all|utm|disable]
151
+ set logtraffic-start [enable|disable]
152
+ set match-vip [enable|disable]
153
+ set match-vip-only [enable|disable]
154
+ set name {string}
155
+ set nat [enable|disable]
156
+ set nat46 [enable|disable]
157
+ set nat64 [enable|disable]
158
+ set natinbound [enable|disable]
159
+ set natip {ipv4-classnet}
160
+ set natoutbound [enable|disable]
161
+ set network-service-dynamic <name1>, <name2>, ...
162
+ set network-service-src-dynamic <name1>, <name2>, ...
163
+ set np-acceleration [enable|disable]
164
+ set ntlm [enable|disable]
165
+ set ntlm-enabled-browsers <user-agent-string1>, <user-agent-string2>, ...
166
+ set ntlm-guest [enable|disable]
167
+ set outbound [enable|disable]
168
+ set passive-wan-health-measurement [enable|disable]
169
+ set pcp-inbound [enable|disable]
170
+ set pcp-outbound [enable|disable]
171
+ set pcp-poolname <name1>, <name2>, ...
172
+ set per-ip-shaper {string}
173
+ set permit-any-host [enable|disable]
174
+ set permit-stun-host [enable|disable]
175
+ set policy-expiry [enable|disable]
176
+ set policy-expiry-date {datetime}
177
+ set policy-expiry-date-utc {user}
178
+ set poolname <name1>, <name2>, ...
179
+ set poolname6 <name1>, <name2>, ...
180
+ set port-preserve [enable|disable]
181
+ set profile-group {string}
182
+ set profile-protocol-options {string}
183
+ set profile-type [single|group]
184
+ set radius-mac-auth-bypass [enable|disable]
185
+ set redirect-url {var-string}
186
+ set replacemsg-override-group {string}
187
+ set reputation-direction [source|destination]
188
+ set reputation-direction6 [source|destination]
189
+ set reputation-minimum {integer}
190
+ set reputation-minimum6 {integer}
191
+ set rtp-addr <name1>, <name2>, ...
192
+ set rtp-nat [disable|enable]
193
+ set schedule {string}
194
+ set schedule-timeout [enable|disable]
195
+ set sctp-filter-profile {string}
196
+ set send-deny-packet [disable|enable]
197
+ set service <name1>, <name2>, ...
198
+ set service-negate [enable|disable]
199
+ set session-ttl {user}
200
+ set sgt <id1>, <id2>, ...
201
+ set sgt-check [enable|disable]
202
+ set src-vendor-mac <id1>, <id2>, ...
203
+ set srcaddr <name1>, <name2>, ...
204
+ set srcaddr-negate [enable|disable]
205
+ set srcaddr6 <name1>, <name2>, ...
206
+ set srcaddr6-negate [enable|disable]
207
+ set srcintf <name1>, <name2>, ...
208
+ set ssh-filter-profile {string}
209
+ set ssh-policy-redirect [enable|disable]
210
+ set ssl-ssh-profile {string}
211
+ set status [enable|disable]
212
+ set tcp-mss-receiver {integer}
213
+ set tcp-mss-sender {integer}
214
+ set tcp-session-without-syn [all|data-only|disable]
215
+ set timeout-send-rst [enable|disable]
216
+ set tos {user}
217
+ set tos-mask {user}
218
+ set tos-negate [enable|disable]
219
+ set traffic-shaper {string}
220
+ set traffic-shaper-reverse {string}
221
+ set users <name1>, <name2>, ...
222
+ set utm-status [enable|disable]
223
+ set uuid {uuid}
224
+ set videofilter-profile {string}
225
+ set virtual-patch-profile {string}
226
+ set vlan-cos-fwd {integer}
227
+ set vlan-cos-rev {integer}
228
+ set vlan-filter {user}
229
+ set voip-profile {string}
230
+ set vpntunnel {string}
231
+ set waf-profile {string}
232
+ set wanopt [enable|disable]
233
+ set wanopt-detection [active|passive|off]
234
+ set wanopt-passive-opt [default|transparent|non-transparent]
235
+ set wanopt-peer {string}
236
+ set wanopt-profile {string}
237
+ set wccp [enable|disable]
238
+ set webcache [enable|disable]
239
+ set webcache-https [disable|enable]
240
+ set webfilter-profile {string}
241
+ set webproxy-forward-server {string}
242
+ set webproxy-profile {string}
243
+ set ztna-device-ownership [enable|disable]
244
+ set ztna-ems-tag <name1>, <name2>, ...
245
+ set ztna-ems-tag-secondary <name1>, <name2>, ...
246
+ set ztna-geo-tag <name1>, <name2>, ...
247
+ set ztna-policy-redirect [enable|disable]
248
+ set ztna-status [enable|disable]
249
+ set ztna-tags-match-logic [or|and]
250
+ next
251
+ end\n
252
+ """
253
 
254
  if __name__ == "__main__":
255
  args = parse_args()
 
261
  )
262
  device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
263
  model = model.to(device)
 
 
 
 
 
264
  gr.ChatInterface(
265
  predict,
266
  title="FortiOS CLI Chat - Demo",
 
275
  gr.Textbox(sys_prompt, label="System Prompt"),
276
  gr.Slider(0, 1, 0.5, label="Temperature"),
277
  gr.Slider(100, 2048, 1024, label="Max Tokens"),
 
 
278
  ],
279
  examples=[
280
  ["Allow all traffic from any source IP address and any source interface 'port10' to any destination IP address and any destination interface 'port9'. This policy will be applied at all times (always) and will allow all services. Additionally, this policy will enable UTM features, use proxy-based inspection mode, and use an SSL-SSH profile named 'deep-custom'. Finally, this policy will also enable source NAT."],
requirements.txt CHANGED
@@ -1 +1,7 @@
1
- huggingface_hub==0.22.2
 
 
 
 
 
 
 
1
+ Cython
2
+ gradio
3
+ transformers
4
+ tiktoken
5
+ torch
6
+ numpy
7
+ accelerate