Spaces:
Sleeping
Sleeping
Upload 2 files
Browse files- app.py +127 -0
- requirements.txt +2 -0
app.py
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from llmlingua import PromptCompressor
|
3 |
+
|
4 |
+
llm_lingua = PromptCompressor(
|
5 |
+
"NlpHUST/gpt2-vietnamese", #
|
6 |
+
#
|
7 |
+
device_map="cpu")
|
8 |
+
|
9 |
+
INTRO = """
|
10 |
+
# LongLLMLingua
|
11 |
+
"""
|
12 |
+
|
13 |
+
def compress_prompt(context, instruction, question, ratio, target_token):
|
14 |
+
context, instruction, question = context.replace("\\n", "\n"), instruction.replace("\\n", "\n"), question.replace("\\n", "\n")
|
15 |
+
compressed_prompt = llm_lingua.compress_prompt(context.split("\n\n"), instruction, question, float(ratio), float(target_token))
|
16 |
+
|
17 |
+
return [compressed_prompt[key] for key in ["compressed_prompt", "origin_tokens", "compressed_tokens", "ratio", "saving"]]
|
18 |
+
|
19 |
+
custom_css = """
|
20 |
+
#image-upload {
|
21 |
+
flex-grow: 1;
|
22 |
+
}
|
23 |
+
#params .tabs {
|
24 |
+
display: flex;
|
25 |
+
flex-direction: column;
|
26 |
+
flex-grow: 1;
|
27 |
+
}
|
28 |
+
#params .tabitem[style="display: block;"] {
|
29 |
+
flex-grow: 1;
|
30 |
+
display: flex !important;
|
31 |
+
}
|
32 |
+
#params .gap {
|
33 |
+
flex-grow: 1;
|
34 |
+
}
|
35 |
+
#params .form {
|
36 |
+
flex-grow: 1 !important;
|
37 |
+
}
|
38 |
+
#params .form > :last-child{
|
39 |
+
flex-grow: 1;
|
40 |
+
}
|
41 |
+
.md ol, .md ul {
|
42 |
+
margin-left: 1rem;
|
43 |
+
}
|
44 |
+
.md img {
|
45 |
+
margin-bottom: 1rem;
|
46 |
+
}
|
47 |
+
"""
|
48 |
+
|
49 |
+
|
50 |
+
with gr.Blocks(css=custom_css) as iface:
|
51 |
+
gr.Markdown(INTRO)
|
52 |
+
|
53 |
+
with gr.Row():
|
54 |
+
with gr.Column(elem_id="prompt", scale=2):
|
55 |
+
with gr.Tab('Prompts'):
|
56 |
+
instruction = gr.Textbox(
|
57 |
+
label="Instruction",
|
58 |
+
lines=1,
|
59 |
+
value="Hãy đưa ra câu trả lời chất lượng cao cho câu hỏi dưới đây sử dụng duy nhất các thông tin sau: ",
|
60 |
+
placeholder="This module consists of directives given by the user to the LLMs, such as task descriptions.",
|
61 |
+
)
|
62 |
+
context = gr.Textbox(
|
63 |
+
label="Context",
|
64 |
+
lines=3,
|
65 |
+
value="Question: Kết quả doanh thu của tập đoàn năm 2022?\n\nBáo cáo Ban Điều hành về kết quả kinh doanh 2022 và nhận định 2023 – Đánh giá chung – Kết quả kinh doanh: Doanh thu và lợi nhuận trước thuế của Tập đoàn tiếp tục ghi nhận mức tăng trưởng cao, đạt lần lượt 44.010 tỷ đồng và 7.662 tỷ đồng, tăng trưởng lần lượt 23,4% và 20,9% so với năm 2021, vượt mục tiêu kế hoạch đã đề ra.\nTrong đó, doanh thu dịch vụ CNTT từ thị trường nước ngoài và doanh thu chuyển đổi số tăng lần lượt 30,1% và 33%, đạt 18.915 tỷ đồng và 7.349 tỷ đồng. Doanh thu đến từ sản phẩm, giải pháp Made by FPT dựa trên các công nghệ dẫn đầu xu hướng như AI, Cloud, Big Data... cũng tăng trưởng đầy ấn tượng 54,3%. Doanh thu tăng trưởng cho thấy tính ứng dụng, độ tin cậy và linh hoạt cao của các sản phẩm, dịch vụ Chuyển đổi số của FPT trong mọi lĩnh vực từ Chính phủ điện tử, giao thông, y tế, tài chính ngân hàng....\n\nQuản trị Công ty – Báo cáo Ban Kiểm soát – Hoạt động của Ban Kiểm soát năm 2022 – Hoạt động giám sát tình hình thực hiện các nghị quyết của ĐHĐCĐ: Kết quả kinh doanh năm 2022 của tập đoàn có sự tăng trưởng tốt. Doanh thu đạt 44.010 tỷ đồng, tăng 23,4% so với doanh thu 2021. Lợi nhuận trước thuế đạt 7.662 tỷ đồng, tăng 20,9% so năm 2021 là điểm sáng tích cực trong bối cảnh kinh tế toàn cầu và Việt Nam đang đứng trước làn sóng khủng hoảng kinh tế, nhiều tập đoàn công nghệ hàng đầu trên thế giới đang có xu hướng tăng trưởng chậm và điều chỉnh tái cấu trúc sản phẩm.\nĐầu năm 2022 nền kinh tế thế giới gặp nhiều bất định, khủng hoảng sau Covid-19 diễn biến phức tạp, cuộc chiến tranh Nga – Ukraine làm ảnh hưởng không nhỏ đến nền kinh tế thế giới nói chung và Việt Nam nói riêng. BKS nhận thấy với nỗ lực hoàn thành mục tiêu kinh doanh kể trên là nỗ lực rất lớn của Ban Điều hành và HĐQT trong việc sát sao, nhạy bén thích nghi trong bối cảnh kinh doanh đầy bất định hiện nay.\nBan Lãnh đạo Tập đoàn đã điều hành quyết liệt các hoạt động kinh doanh, kết quả đã vượt mức các mục tiêu kinh doanh chính như doanh thu; lợi nhuận; EPS. Đây là nỗ lực rất đáng ghi nhận trong công tác chỉ đạo điều hành của HĐQT cùng Ban Điều hành trong năm 2022.\n\nBáo cáo Ban Điều hành về kết quả kinh doanh 2022 và nhận định 2023 – Đánh giá chung – Kết quả kinh doanh: Một số chỉ tiêu hoạt động kinh doanh chính trong năm 2022 bao gồm: Tổng giá trị tài sản năm 2021 đạt 53.698 tỷ VNĐ, năm 2022 đạt 51.650 tỷ VNĐ, giảm 3,8%. Doanh thu kinh doanh hợp nhất năm 2021 đạt 35.657 tỷ VNĐ, năm 2022 đạt 44.010 tỷ VNĐ, tăng 23,4%. Lợi nhuận từ hoạt động kinh doanh năm 2021 đạt 6.228 tỷ VNĐ, năm 2022 đạt 7.589 tỷ VNĐ, tăng 21,8%. LNTT, lãi vay và khấu hao (EBITDA) năm 2021 đạt 7.981 tỷ VNĐ, năm 2022 đạt 9.495 tỷ VNĐ, tăng 19,0%. LNTT năm 2021 đạt 6.337 tỷ VNĐ, năm 2022 đạt 7.662 tỷ VNĐ, tăng 20,9%. LNST năm 2021 đạt 5.349 tỷ VNĐ, năm 2022 đạt 6.491 tỷ VNĐ, tăng 21,3%. Lãi cơ bản trên cổ phiếu năm 2021 đạt 3.618 VNĐ, năm 2022 đạt 4.429 VNĐ, tăng 22,4%. Cổ tức tiền mặt trả trong năm 2021 đạt 1.697 tỷ VNĐ, năm 2022 đạt 2.011 tỷ VNĐ, tăng 18,5%. Tỷ lệ lợi nhuận trả cổ tức năm 2021 là 39,1%, năm 2022 là 37,9%, giảm 3,2%.\n\nBáo cáo Ban Điều hành về kết quả kinh doanh 2022 và nhận định 2023 – Phân tích kết quả kinh doanh theo khối – Khối Viễn thông: Khối Viễn thông đem về cho Tập đoàn doanh thu 14.730 tỷ đồng và LNTT 2.818 tỷ đồng, tăng trưởng lần lượt 15,5% và 18,4% so với cùng kỳ. Trong thời gian tới, khối Viễn thông tiếp tục đầu tư các trục cáp chính, trục cáp biển quốc tế, nâng cấp chất lượng hạ tầng viễn thông nội địa và hệ thống Trung tâm Dữ liệu.\nDoanh thu Khối Viễn thông có tổng tỷ trọng Doanh thu khối là 14.730 tỷ VNĐ, trong đó:\nDịch vụ viễn thông chiếm 95% tương đương với 13.954 tỷ VNĐ\nDịch vụ nội dung số chiếm 5% tương đương với 775 tỷ VNĐ\nTỷ trọng LNTT Khối Viễn thông có tổng tỷ trọng là 2.818 tỷ VNĐ, trong đó:\nDịch vụ viễn thông chiếm 89% tương đương với 2508 tỷ VNĐ\nDịch vụ nội dung số chiếm 11% tương đương với 309 tỷ VNĐ\n\nPHÂN TÍCH HOẠT ĐỘNG KINH DOANH – Báo cáo Ban Điều hành về kết quả kinh doanh 2021 và nhận định 2022 – Phân tích kết quả kinh doanh theo khối: Trước những khó khăn thách thức do diễn biến phức tạp của dịch Covid-19, Tập đoàn FPT đã ứng phó linh hoạt, khai thác tối đa được vị thế, cơ hội, và nguồn lực để đảm bảo các mục tiêu đề ra, không để những đợt giãn cách xã hội lâu dài ảnh hưởng lên kết quả kinh doanh chung. Đóng góp trong mức tăng trưởng doanh thu 19,5% của toàn Tập đoàn không thể thiếu những nỗ lực không ngừng nghỉ của đội ngũ FPT của cả 3 khối: Công nghệ, Viễn thông, Giáo dục, Đầu tư và Khác với mức tăng trưởng doanh thu so với cùng kỳ lần lượt đạt 23,4%, 10,6% và 43,1%.\nDoanh thu theo khối kinh doanh:\nKhối công nghệ đạt 20,736 tỷ VNĐ\nKhối viễn thông đạt 12,686 tỷ VNĐ\nKhối giáo dục, đầu tư và các khối khác đạt 2,235 tỷ VNĐ\nLợi nhuận trước thuế theo khối kinh doanh\nKhối công nghệ đạt 2,799 tỷ VNĐ\nKhối viễn thông đạt 2,395 tỷ VNĐ\nKhối giáo dục, đầu tư và các khối khác đạt 1,143 tỉ VNĐ",
|
66 |
+
placeholder="This module provides the supplementary context needed to address the question, such as documents, demonstrations, web search results, or API call results.",
|
67 |
+
)
|
68 |
+
question = gr.Textbox(
|
69 |
+
label="Question",
|
70 |
+
lines=1,
|
71 |
+
value="Question: Kết quả doanh thu của tập đoàn năm 2022?",
|
72 |
+
placeholder="This refers to the directives given by the user to the LLMs, such as inquiries, questions, or requests.",
|
73 |
+
)
|
74 |
+
with gr.Column(elem_id="params", scale=1):
|
75 |
+
with gr.Tab('Compression Target'):
|
76 |
+
target_token = gr.Textbox(
|
77 |
+
label="Target Token (To use this, set Compression Ratio to 0)",
|
78 |
+
value=200,
|
79 |
+
)
|
80 |
+
ratio = gr.Textbox(
|
81 |
+
label="Compression Ratio (To use this, set Target Token to -1)",
|
82 |
+
value=0,
|
83 |
+
)
|
84 |
+
|
85 |
+
gen_button = gr.Button(value="Compress Prompt!", variant="primary")
|
86 |
+
|
87 |
+
with gr.Row():
|
88 |
+
with gr.Column(elem_id="Results", scale=1):
|
89 |
+
with gr.Tab('Compressed Prompts'):
|
90 |
+
compressed_prompt = gr.Textbox(
|
91 |
+
label="compressed_prompt",
|
92 |
+
lines=10,
|
93 |
+
)
|
94 |
+
with gr.Column(elem_id="Results_2", scale=1):
|
95 |
+
with gr.Tab('Saving'):
|
96 |
+
origin_tokens = gr.Textbox(
|
97 |
+
label="The tokens number of original prompt",
|
98 |
+
)
|
99 |
+
compressed_tokens = gr.Textbox(
|
100 |
+
label="The tokens number of compressed prompt",
|
101 |
+
)
|
102 |
+
saving_ratio = gr.Textbox(
|
103 |
+
label="Actual Compression Ratio",
|
104 |
+
)
|
105 |
+
saving = gr.Textbox(
|
106 |
+
label="Saving Cost",
|
107 |
+
)
|
108 |
+
|
109 |
+
gen_button.click(
|
110 |
+
fn=compress_prompt,
|
111 |
+
inputs=[
|
112 |
+
context,
|
113 |
+
instruction,
|
114 |
+
question,
|
115 |
+
ratio,
|
116 |
+
target_token
|
117 |
+
],
|
118 |
+
outputs=[
|
119 |
+
compressed_prompt,
|
120 |
+
origin_tokens,
|
121 |
+
compressed_tokens,
|
122 |
+
saving_ratio,
|
123 |
+
saving
|
124 |
+
],
|
125 |
+
)
|
126 |
+
|
127 |
+
iface.queue(max_size=10, api_open=False).launch(show_api=False)
|
requirements.txt
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
llmlingua==0.1.6
|
2 |
+
accelerate
|