-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix_dependencies.py
More file actions
93 lines (78 loc) · 3.49 KB
/
Copy pathfix_dependencies.py
File metadata and controls
93 lines (78 loc) · 3.49 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
#!/usr/bin/env python3
"""
Скрипт для исправления проблем с зависимостями AI провайдеров
"""
import subprocess
import os
def run_command(cmd, description):
"""Выполнить команду с описанием"""
print(f"🔧 {description}...")
try:
subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True)
print(f"✅ {description} - успешно")
return True
except subprocess.CalledProcessError as e:
print(f"❌ {description} - ошибка: {e.stderr}")
return False
def main():
print("🚀 Исправление зависимостей AI провайдеров")
print("=" * 50)
# Список исправлений
fixes = [
{
"cmd": "pip3 install 'protobuf>=4.25.0,<5.0.0' 'grpcio-status>=1.49.1,<1.63.0'",
"desc": "Обновление Google/gRPC runtime stack"
},
{
"cmd": "pip3 install --upgrade anthropic",
"desc": "Обновление Anthropic библиотеки"
},
{
"cmd": "pip3 install --upgrade google-genai",
"desc": "Обновление Google Gen AI SDK"
},
{
"cmd": "pip3 install --upgrade ollama",
"desc": "Обновление Ollama библиотеки"
},
{
"cmd": "pip3 install --upgrade openai",
"desc": "Обновление OpenAI библиотеки"
}
]
success_count = 0
for fix in fixes:
if run_command(fix["cmd"], fix["desc"]):
success_count += 1
print()
# Установка переменной окружения для Google Gemini
print("🔧 Настройка переменной окружения для Google Gemini...")
os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'
print("✅ Переменная окружения установлена")
print(f"\n{'='*50}")
print("📊 РЕЗУЛЬТАТЫ:")
print(f"✅ Успешно: {success_count}/{len(fixes)}")
if success_count == len(fixes):
print("🎉 Все зависимости исправлены!")
else:
print("⚠️ Некоторые исправления не удались")
print("\n💡 Рекомендации:")
print("1. Перезапустите терминал для применения изменений")
print("2. Запустите тест: python3 test_mock_ai.py")
print("3. Для постоянного решения добавьте в ~/.bashrc или ~/.zshrc:")
print(" export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python")
# Тест провайдеров
print("\n🧪 Тестирование провайдеров...")
try:
from models.ai_providers import AIProviderFactory
available = AIProviderFactory.get_available_providers()
print("📊 Статус провайдеров:")
for name, is_available in available.items():
status = "✅" if is_available else "❌"
print(f" {status} {name}")
available_count = sum(available.values())
print(f"\n📈 Доступно провайдеров: {available_count}/{len(available)}")
except Exception as e:
print(f"❌ Ошибка при тестировании: {e}")
if __name__ == "__main__":
main()