Sabbah13 commited on
Commit
791adc1
1 Parent(s): 5e059ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -28
app.py CHANGED
@@ -6,6 +6,34 @@ import streamlit as st
6
  import whisperx
7
  import torch
8
  from utils import convert_segments_object_to_text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  st.title('Audio Transcription App')
11
  st.sidebar.title("Settings")
@@ -14,11 +42,14 @@ device = st.sidebar.selectbox("Device", ["cpu", "cuda"], index=1)
14
  batch_size = st.sidebar.number_input("Batch Size", min_value=1, value=16)
15
  compute_type = st.sidebar.selectbox("Compute Type", ["float16", "int8"], index=0)
16
 
17
- initial_giga_base_prompt = "Напиши резюме транскрибации звонка, текст которого приложен в ниже. Выдели самостоятельно цель встречи, потом описать ключевые моменты всей встречи. Потом выделить отдельные темы звонка и выделить ключевые моменты в них. Напиши итоги того, о чем договорились говорящие, если такое возможно выделить из текста.\n Транскрибация: "
 
18
 
19
  giga_base_prompt = st.sidebar.text_area("Промпт ГигаЧата для резюмирования", value=initial_giga_base_prompt)
20
  giga_max_tokens = st.sidebar.number_input("Максимальное количество токенов при ответе", min_value=1, value=1024)
21
 
 
 
22
  ACCESS_TOKEN = st.secrets["HF_TOKEN"]
23
 
24
  uploaded_file = st.file_uploader("Загрузите аудиофайл", type=["mp4", "wav", "m4a"])
@@ -50,8 +81,8 @@ if uploaded_file is not None:
50
  st.write("Результат транскрибации:")
51
  transcript = convert_segments_object_to_text(result_diar)
52
  st.text(transcript)
53
-
54
- with st.spinner('Резюмируем...'):
55
  username = st.secrets["GIGA_USERNAME"]
56
  password = st.secrets["GIGA_SECRET"]
57
 
@@ -75,30 +106,16 @@ if uploaded_file is not None:
75
  response = requests.post(url, headers=headers, data=data, verify=False)
76
  access_token = response.json()['access_token']
77
  print('Got access token')
 
 
 
 
 
 
78
 
79
- url_completion = os.getenv('GIGA_COMPLETION_URL')
80
-
81
- data_copm = json.dumps({
82
- "model": os.getenv('GIGA_MODEL'),
83
- "messages": [
84
- {
85
- "role": "user",
86
- "content": giga_base_prompt + transcript
87
- }
88
- ],
89
- "stream": False,
90
- "max_tokens": int(giga_max_tokens),
91
- })
92
-
93
- headers_comp = {
94
- 'Content-Type': 'application/json',
95
- 'Accept': 'application/json',
96
- 'Authorization': 'Bearer ' + access_token
97
- }
98
-
99
- response = requests.post(url_completion, headers=headers_comp, data=data_copm, verify=False)
100
- response_data = response.json()
101
- answer_from_llm = response_data['choices'][0]['message']['content']
102
 
103
- st.write("Результат резюмирования:")
104
- st.text(answer_from_llm)
 
6
  import whisperx
7
  import torch
8
  from utils import convert_segments_object_to_text
9
+
10
+ def get_completion_from_gigachat(prompt, max_tokens, access_token):
11
+ url_completion = os.getenv('GIGA_COMPLETION_URL')
12
+
13
+ data_copm = json.dumps({
14
+ "model": os.getenv('GIGA_MODEL'),
15
+ "messages": [
16
+ {
17
+ "role": "user",
18
+ "content": prompt
19
+ }
20
+ ],
21
+ "stream": False,
22
+ "max_tokens": max_tokens,
23
+ })
24
+
25
+ headers_comp = {
26
+ 'Content-Type': 'application/json',
27
+ 'Accept': 'application/json',
28
+ 'Authorization': 'Bearer ' + access_token
29
+ }
30
+
31
+ response = requests.post(url_completion, headers=headers_comp, data=data_copm, verify=False)
32
+ response_data = response.json()
33
+ answer_from_llm = response_data['choices'][0]['message']['content']
34
+
35
+ return answer_from_llm
36
+
37
 
38
  st.title('Audio Transcription App')
39
  st.sidebar.title("Settings")
 
42
  batch_size = st.sidebar.number_input("Batch Size", min_value=1, value=16)
43
  compute_type = st.sidebar.selectbox("Compute Type", ["float16", "int8"], index=0)
44
 
45
+ initial_giga_base_prompt = "Напиши резюме транскрибации звонка, текст которого приложен в ниже. Выдели самостоятельно цель встречи, потом описать ключевые моменты всей встречи. Потом выделить отдельные темы звонка и выделить ключевые моменты в них. Напиши итоги того, о чем договорились говорящие, если такое возможно выделить из текста.\nТранскрибация: "
46
+ initial_giga_processing_prompt = "Обработай транкрибацию звонка. Убедись, что каждое слово назначено правильному спикеру. Если заметишь, что слово или фраза ошибочно приписаны другому спикеру, исправь это. Постарайся понять имена говорящих из контекста разговора и замени «Спикер 1», «Спикер 2» и т.д. на их реальные имена. Если чье-то имя понять невозможно, то не меняй его.\nТранскрибация: "
47
 
48
  giga_base_prompt = st.sidebar.text_area("Промпт ГигаЧата для резюмирования", value=initial_giga_base_prompt)
49
  giga_max_tokens = st.sidebar.number_input("Максимальное количество токенов при ответе", min_value=1, value=1024)
50
 
51
+ giga_processing_prompt = st.sidebar.text_area("Промпт ГигаЧата для обработки транскрибации", value=initial_giga_processing_prompt)
52
+
53
  ACCESS_TOKEN = st.secrets["HF_TOKEN"]
54
 
55
  uploaded_file = st.file_uploader("Загрузите аудиофайл", type=["mp4", "wav", "m4a"])
 
81
  st.write("Результат транскрибации:")
82
  transcript = convert_segments_object_to_text(result_diar)
83
  st.text(transcript)
84
+
85
+ with st.spinner('Обрабатываем транскрибацию...'):
86
  username = st.secrets["GIGA_USERNAME"]
87
  password = st.secrets["GIGA_SECRET"]
88
 
 
106
  response = requests.post(url, headers=headers, data=data, verify=False)
107
  access_token = response.json()['access_token']
108
  print('Got access token')
109
+
110
+ transcribe_answer = get_completion_from_gigachat(giga_processing_prompt + transcript, giga_max_tokens, access_token)
111
+
112
+ st.write("Результат обработки:")
113
+ st.text(transcribe_answer)
114
+
115
 
116
+
117
+ with st.spinner('Резюмируем...'):
118
+ summary_answer = get_completion_from_gigachat(giga_base_prompt + transcribe_answer, giga_max_tokens, access_token)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
+ st.write("Результат резюмирования:")
121
+ st.text(summary_answer)