fruitpicker01 commited on
Commit
22cd579
·
verified ·
1 Parent(s): 22cbbdf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -23
app.py CHANGED
@@ -8,7 +8,6 @@ from langchain.schema import SystemMessage
8
  from langchain_community.chat_models.gigachat import GigaChat
9
  from openpyxl import load_workbook
10
  import base64
11
- import git
12
 
13
  # Установка ключа API для OpenAI и GigaChat
14
  openai_api_key = os.getenv('GPT_KEY')
@@ -269,38 +268,41 @@ def check_errors_with_yield(*personalized_messages):
269
  yield error_check_prompt, error_message_gpt4o, error_message_gigachat_pro, error_message_gigachat_lite, error_message_gigachat_plus, "Все результаты проверки сгенерированы"
270
 
271
 
272
- # Функция для сохранения сообщения в файл
273
  def save_to_github(message, model_name):
274
  # Формируем уникальное имя файла на основе текущего времени
275
  timestamp = int(time.time())
276
  file_name = f"file_{timestamp}.json"
277
- file_path = os.path.join(".", file_name)
278
-
279
  # Данные для записи
280
- data = {"Модель": model_name, "Сообщение": message}
 
 
 
281
 
282
- # Сохранение данных в новый JSON файл
283
- with open(file_path, 'w') as file:
284
- json.dump(data, file, ensure_ascii=False, indent=4)
285
 
286
- # Инициализация репозитория и добавление файла
287
- repo = git.Repo(".")
288
- repo.index.add([file_path])
289
- repo.index.commit(f"Add {file_name} generated by {model_name}")
 
 
 
 
 
 
 
 
290
 
291
- # Настройка удаленного репозитория с использованием токена
292
- token = os.getenv('GITHUB_TOKEN')
293
- repo_url = f"https://{token}@github.com/fruitpicker01/Storage_1.git"
294
 
295
- # Если origin еще не настроен, настраиваем его
296
- if 'origin' not in [remote.name for remote in repo.remotes]:
297
- repo.create_remote('origin', repo_url)
298
  else:
299
- repo.remotes.origin.set_url(repo_url)
300
-
301
- # Пушим изменения в main ветку
302
- repo.remotes.origin.push(f"HEAD:main")
303
-
304
 
305
 
306
  # Создание интерфейса Gradio
 
8
  from langchain_community.chat_models.gigachat import GigaChat
9
  from openpyxl import load_workbook
10
  import base64
 
11
 
12
  # Установка ключа API для OpenAI и GigaChat
13
  openai_api_key = os.getenv('GPT_KEY')
 
268
  yield error_check_prompt, error_message_gpt4o, error_message_gigachat_pro, error_message_gigachat_lite, error_message_gigachat_plus, "Все результаты проверки сгенерированы"
269
 
270
 
 
271
  def save_to_github(message, model_name):
272
  # Формируем уникальное имя файла на основе текущего времени
273
  timestamp = int(time.time())
274
  file_name = f"file_{timestamp}.json"
275
+
 
276
  # Данные для записи
277
+ file_content = {
278
+ "Модель": model_name,
279
+ "Сообщение": message
280
+ }
281
 
282
+ # Преобразуем контент в JSON-строку и кодируем в base64
283
+ file_content_encoded = base64.b64encode(json.dumps(file_content).encode()).decode()
 
284
 
285
+ # Параметры для GitHub API
286
+ repo = "fruitpicker01/Storage_1"
287
+ path = file_name
288
+ url = f"https://api.github.com/repos/{repo}/contents/{path}"
289
+ headers = {
290
+ "Authorization": f"token {token}",
291
+ "Content-Type": "application/json"
292
+ }
293
+ data = {
294
+ "message": f"Добавлен новый файл {file_name}",
295
+ "content": file_content_encoded
296
+ }
297
 
298
+ # Отправка POST-запроса на GitHub API для создания файла в репозитории
299
+ response = requests.put(url, headers=headers, data=json.dumps(data))
 
300
 
301
+ if response.status_code == 201:
302
+ print(f"Файл {file_name} успешно добавлен в репозиторий.")
 
303
  else:
304
+ print(f"Ошибка при добавлении файла: {response.status_code}")
305
+ print(response.json())
 
 
 
306
 
307
 
308
  # Создание интерфейса Gradio