Spaces:
Running
Примечание
Этот README был переведен с помощью GPT (реализовано с помощью плагина этого проекта) и не может быть полностью надежным, пожалуйста, внимательно проверьте результаты перевода.
7 ноября 2023 года: При установке зависимостей, пожалуйста, выберите указанные версии из
requirements.txt
. Команда установки:pip install -r requirements.txt
.
GPT Academic (GPT Академический)
Если вам нравится этот проект, пожалуйста, поставьте звезду; если у вас есть удобные горячие клавиши или плагины, приветствуются pull requests!
Чтобы перевести этот проект на произвольный язык с помощью GPT, прочтите и выполните multi_language.py
(экспериментально).
Примечание
Пожалуйста, обратите внимание, что только плагины (кнопки), выделенные жирным шрифтом, поддерживают чтение файлов, некоторые плагины находятся в выпадающем меню плагинов. Кроме того, мы с радостью приветствуем и обрабатываем PR для любых новых плагинов с наивысшим приоритетом.
Функции каждого файла в этом проекте подробно описаны в отчете о самостоятельном анализе проекта
self_analysis.md
. С каждым новым релизом вы также можете в любое время нажать на соответствующий функциональный плагин, вызвать GPT для повторной генерации сводного отчета о самоанализе проекта. Часто задаваемые вопросыwiki
| обычные методы установки | скрипт одношаговой установки | инструкции по настройке.Этот проект совместим и настоятельно рекомендуется использование китайской NLP-модели ChatGLM и других моделей больших языков производства Китая. Поддерживает одновременное использование нескольких ключей API, которые можно указать в конфигурационном файле, например,
API_KEY="openai-key1,openai-key2,azure-key3,api2d-key4"
. Если нужно временно заменитьAPI_KEY
, введите временныйAPI_KEY
в окне ввода и нажмите Enter для его подтверждения.
Функции (⭐= Недавно добавленные функции) | Описание |
---|---|
⭐Подключение новой модели! | Baidu QianFan и WenxinYiYan, TongYiQianWen, Shanghai AI-Lab ShuSheng, Xunfei XingHuo, LLaMa2, ZhiPu API, DALLE3 |
Улучшение, перевод, объяснение кода | Одним нажатием выполнить поиск синтаксических ошибок в научных статьях, переводить, объяснять код |
Настройка горячих клавиш | Поддержка настройки горячих клавиш |
Модульный дизайн | Поддержка настраиваемых мощных плагинов, плагины поддерживают горячую замену |
Профилирование кода | [Плагин] Одним нажатием можно профилировать дерево проекта Python/C/C++/Java/Lua/... или проанализировать самого себя |
Просмотр статей, перевод статей | [Плагин] Одним нажатием прочитать полный текст статьи в формате LaTeX/PDF и сгенерировать аннотацию |
Перевод LaTeX статей, улучшение | [Плагин] Одним нажатием перевести или улучшить статьи в формате LaTeX |
Генерация пакетного комментария | [Плагин] Одним нажатием сгенерировать многострочный комментарий к функции |
Перевод Markdown на английский и китайский | [Плагин] Вы видели документацию на сверху на пяти языках? README` |
Анализ и создание отчета в формате чата | [Плагин] Автоматически генерируйте сводный отчет после выполнения |
Функция перевода полноценной PDF статьи | [Плагин] Изъять название и аннотацию статьи из PDF + переводить полный текст (многопоточно) |
Arxiv помощник | [Плагин] Просто введите URL статьи на arXiv, чтобы одним нажатием выполнить перевод аннотации + загрузить PDF |
Одним кликом проверить статью на LaTeX | [Плагин] Проверка грамматики и правописания статьи LaTeX, добавление PDF в качестве справки |
Помощник Google Scholar | [Плагин] Создайте "related works" с помощью Google Scholar URL по вашему выбору. |
Агрегирование интернет-информации + GPT | [Плагин] GPT получает информацию из интернета и отвечает на вопросы, чтобы информация никогда не устаревала |
⭐Точный перевод статей Arxiv (Docker) | [Плагин] Переводите статьи Arxiv наивысшего качества всего одним нажатием. Сейчас это лучший инструмент для перевода научных статей |
⭐Реальное время ввода голосом | [Плагин] Асинхронно слушать аудио, автоматически разбивать на предложения, автоматически находить момент для ответа |
Отображение формул/изображений/таблиц | Поддержка отображения формул в форме tex и рендеринга, поддержка подсветки синтаксиса формул и кода |
⭐Плагин AutoGen для множества интеллектуальных агентов | [Плагин] Используйте Microsoft AutoGen для исследования возможностей интеллектуального всплытия нескольких агентов! |
Запуск темной темы | Добавьте /?__theme=dark в конец URL в браузере, чтобы переключиться на темную тему |
Поддержка нескольких моделей LLM | Быть обслуживаемым GPT3.5, GPT4, ChatGLM2 из Цинхуа, MOSS из Фуданя одновременно должно быть очень приятно, не так ли? |
⭐Модель ChatGLM2 Fine-tune | Поддержка загрузки модели ChatGLM2 Fine-tune, предоставляет вспомогательный плагин ChatGLM2 Fine-tune |
Больше моделей LLM, поддержка развертывания huggingface | Включение интерфейса Newbing (новый Bing), введение поддержки китайских Jittorllms для поддержки LLaMA и Panguα |
⭐Пакет pip void-terminal | Без GUI вызывайте все функциональные плагины этого проекта прямо из Python (разрабатывается) |
⭐Плагин пустого терминала | [Плагин] Используя естественный язык, напрямую распоряжайтесь другими плагинами этого проекта |
Больше новых функций (генерация изображений и т. д.) ... | Смотрите в конце этого документа ... |
Новый интерфейс (изменение опции LAYOUT в
config.py
позволяет переключиться между "расположением слева и справа" и "расположением сверху и снизу")Все кнопки генерируются динамически на основе
functional.py
и могут быть свободно дополнены, освобождая буфер обменаУлучшение/исправление
Если вывод содержит формулы, они отображаются одновременно в виде tex и отрендеренного вида для удобства копирования и чтения
Не хочешь смотреть код проекта? Весь проект сразу в уста ChatGPT
Смешанное использование нескольких больших языковых моделей (ChatGLM + OpenAI-GPT3.5 + API2D-GPT4)
Установка
Метод установки I: Прямой запуск (Windows, Linux или MacOS)
- Скачайте проект
git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
cd gpt_academic
- Настройте API_KEY
В файле config.py
настройте API KEY и другие настройки, нажмите здесь, чтобы узнать способы настройки в специальных сетевых средах. Инструкции по настройке проекта.
「 Программа будет в первую очередь проверять наличие файла config_private.py с приватными настройками и заменять соответствующие настройки в файле config.py на те, которые указаны в файле config_private.py. Если вы понимаете эту логику, мы настоятельно рекомендуем вам создать новый файл настроек config_private.py рядом с файлом config.py и скопировать туда настройки из config.py (только те, которые вы изменяли). 」
「 Поддерживается настроить проект с помощью переменных среды
. Пример настройки переменных среды можно найти в файле docker-compose.yml или на нашей странице вики. Приоритет настроек: переменные среды
> config_private.py
> config.py
. 」
- Установите зависимости
# (Выбор I: Если знакомы с Python, python>=3.9). Примечание: используйте официальный pip-репозиторий или пакетный репозиторий Alibaba, временный способ изменить источник: python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (Выбор II: Используйте Anaconda). Шаги аналогичны (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # Создание среды Anaconda
conda activate gptac_venv # Активация среды Anaconda
python -m pip install -r requirements.txt # Здесь все тоже самое, что и с установкой для pip
Если вам нужна поддержка ChatGLM2 от Цинхуа/MOSS от Фуданя/Раннера RWKV как бэкенда, нажмите, чтобы развернуть
【Опциональный шаг】Если вам нужна поддержка ChatGLM2 от Цинхуа/Сервиса MOSS от Фуданя, вам понадобится дополнительно установить дополнительные зависимости (предполагается, что вы знакомы с Python + PyTorch + у вас достаточно мощный компьютер):
# 【Опциональный шаг I】Поддержка ChatGLM2 от Цинхуа. Примечание к ChatGLM от Цинхуа: Если вы столкнулись с ошибкой "Call ChatGLM fail 不能正常加载ChatGLM的参数", обратите внимание на следующее: 1: По умолчанию установлена версия torch+cpu, для использования cuda необходимо удалить torch и установить версию torch+cuda; 2: Если вы не можете загрузить модель из-за недостаточной мощности компьютера, вы можете изменить точность модели в файле request_llm/bridge_chatglm.py, заменив AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True) на AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
python -m pip install -r request_llms/requirements_chatglm.txt
# 【Опциональный шаг II】Поддержка MOSS от Фуданя
python -m pip install -r request_llms/requirements_moss.txt
git clone --depth=1 https://github.com/OpenLMLab/MOSS.git request_llms/moss # Обратите внимание, что когда вы запускаете эту команду, вы должны находиться в корневой папке проекта
# 【Опциональный шаг III】Поддержка RWKV Runner
Смотрите вики: https://github.com/binary-husky/gpt_academic/wiki/Поддержка-RWKV-Runner
# 【Опциональный шаг IV】Убедитесь, что config.py содержит все нужные вам модели. Пример:
AVAIL_LLM_MODELS = ["gpt-3.5-turbo", "api2d-gpt-3.5-turbo", "gpt-4", "api2d-gpt-4", "chatglm", "moss"] # + ["jittorllms_rwkv", "jittorllms_pangualpha", "jittorllms_llama"]
- Запустите программу
python main.py
Метод установки II: Используйте Docker
- Установка всех возможностей проекта (это большой образ с поддержкой cuda и LaTeX; но если у вас медленный интернет или маленький жесткий диск, мы не рекомендуем использовать этот метод).
# Измените файл docker-compose.yml, сохраните метод 0 и удалите другие методы. Затем запустите:
docker-compose up
# Измените файл docker-compose.yml, сохраните метод 1 и удалите другие методы. Затем запустите:
docker-compose up
P.S. Если вам нужен функционал, связанный с LaTeX, обратитесь к разделу Wiki. Кроме того, вы также можете использовать схему 4 или схему 0 для доступа к функционалу LaTeX.
# Измените файл docker-compose.yml, сохраните метод 2 и удалите другие методы. Затем запустите:
docker-compose up
Метод установки III: Другие способы развертывания
Скрипты запуска одним нажатием для Windows. Пользователи Windows, не знакомые с окружением Python, могут загрузить одну из версий в разделе Релизы для установки версии без локальных моделей. Скрипты взяты из вкладки oobabooga.
Использование сторонних API, Azure и т. д., см. страницу вики
Руководство по развертыванию на удаленном сервере. Пожалуйста, посетите вики-страницу развертывания на облачном сервере.
Некоторые новые платформы или методы развертывания
- Использование Sealos для однократного развертывания
- Использование WSL2 (Windows Subsystem for Linux). См. Руководство развертывания-2
- Как запустить на вложенном URL-адресе (например,
http://localhost/subpath
). См. Инструкции по работе с FastAPI
Расширенное использование
I: Пользовательские удобные кнопки (академические сочетания клавиш)
Откройте файл core_functional.py
в любом текстовом редакторе и добавьте следующие записи, затем перезапустите программу. (Если кнопка уже существует, то префикс и суффикс поддерживают горячую замену без перезапуска программы.)
Например,
"Супер-англо-русский перевод": {
# Префикс, который будет добавлен перед вашим вводом. Например, используется для описания вашего запроса, например, перевода, объяснения кода, редактирования и т.д.
"Префикс": "Пожалуйста, переведите следующий абзац на русский язык, а затем покажите каждый термин на экране с помощью таблицы Markdown:\n\n",
# Суффикс, который будет добавлен после вашего ввода. Например, можно использовать с префиксом, чтобы заключить ваш ввод в кавычки.
"Суффикс": "",
},
II: Пользовательские функциональные плагины
Создавайте мощные функциональные плагины для выполнения любых задач, которые вам нужны и которых вы и не можете себе представить. Создание плагина для этого проекта и его отладка являются простыми задачами, и если у вас есть базовые знания Python, вы можете реализовать свой собственный функциональный плагин, используя наши предоставленные шаблоны. Дополнительную информацию см. в Руководстве по функциональным плагинам.
Обновления
I: Динамические
Функция сохранения диалога. Вызовите "Сохранить текущий диалог" в области функциональных плагинов, чтобы сохранить текущий диалог в виде читаемого и восстанавливаемого html-файла. Кроме того, можно использовать "Загрузить архивный файл диалога" в области функциональных плагинов (выпадающее меню), чтобы восстановить предыдущий разговор. Подсказка: если не указывать файл и просто щелкнуть "Загрузить архивный файл диалога", можно просмотреть кэш сохраненных html-архивов.
⭐Перевод Latex/Arxiv статей⭐
===>Void Terminal (понимание пользовательских намерений из естественного языка и автоматическое вызов других плагинов)
- Шаг 1: Введите "Пожалуйста, вызовите плагин для перевода PDF-статьи, адрес которой https://openreview.net/pdf?id=rJl0r3R9KX".
- Шаг 2: Нажмите "Void Terminal".
Модульный дизайн функционала, позволяющий реализовать мощные функции с помощью простых интерфейсов
Перевод и анализ других открытых проектов
Функциональность для украшенияmeme (по умолчанию отключена, требуется изменение файла
config.py
)Генерация изображений с помощью OpenAI
Анализ и обобщение аудио с помощью OpenAI
Проверка и исправление ошибок во всем тексте LaTeX
===>Изменение языка и темы
II: Версии:
- Версия 3.70 (в планах): Оптимизация темы AutoGen и разработка ряда дополнительных плагинов
- Версия 3.60: Внедрение AutoGen в качестве фундамента нового поколения плагинов
- Версия 3.57: Поддержка GLM3, Starfire v3, Wenxin One Word v4, исправление ошибок при совместном использовании локальной модели
- Версия 3.56: Поддержка добавления дополнительных функциональных кнопок в реальном времени, новая страница отчетов в формате PDF
- Версия 3.55: Переработка пользовательского интерфейса, внедрение плавающего окна и панели меню
- Версия 3.54: Добавлен интерпретатор кода (Code Interpreter) (в разработке)
- Версия 3.53: Динамический выбор различных тем интерфейса, повышение стабильности и решение проблемы конфликтов между несколькими пользователями
- Версия 3.50: Использование естественного языка для вызова всех функциональных плагинов проекта (Void Terminal), поддержка категоризации плагинов, улучшение пользовательского интерфейса, разработка новых тем
- Версия 3.49: Поддержка платформы Baidu Qianfan и Wenxin One Word
- Версия 3.48: Поддержка Ali Dharma Institute, Shanghai AI-Lab Scholar, Xunfei Starfire
- Версия 3.46: Поддержка реального голосового диалога с полной автоматизацией
- Версия 3.45: Поддержка настраиваемой модели ChatGLM2
- Версия 3.44: Официальная поддержка Azure, улучшение удобства пользовательского интерфейса
- Версия 3.4: +Перевод полных текстов PDF, +корректировка латексных документов
- Версия 3.3: +Интернет-информационные функции
- Версия 3.2: Поддержка дополнительных параметров в функциональных плагинах (функция сохранения диалога, интерпретация кода на любом языке + одновременный вопрос о любом комбинированном LLM)
- Версия 3.1: Поддержка одновременного обращения к нескольким моделям gpt! Поддержка API2D, поддержка равномерной нагрузки нескольких api-ключей
- Версия 3.0: Поддержка chatglm и других небольших моделей llm
- Версия 2.6: Переработка структуры плагинов для повышения интерактивности, добавление дополнительных плагинов
- Версия 2.5: Автоматическое обновление, решение проблемы с длиной текста и переполнением токенов при обработке текста
- Версия 2.4: (1) Добавление функции полного перевода PDF; (2) Добавление функции изменения позиции объекта ввода; (3) Добавление функции вертикального размещения; (4) Оптимизация многопоточных функциональных плагинов.
- Версия 2.3: Улучшение интерактивности многопоточности
- Версия 2.2: Поддержка живой перезагрузки функциональных плагинов
- Версия 2.1: Складываемый макет
- Версия 2.0: Введение модульных функциональных плагинов
- Версия 1.0: Базовые функции
GPT Academic Группа QQ разработчиков: 610599535
- Известные проблемы
- Некоторые расширения для браузера могут мешать работе пользовательского интерфейса этого программного обеспечения
- У официального Gradio есть много проблем совместимости, поэтому обязательно установите Gradio с помощью
requirement.txt
III: Темы
Вы можете изменить тему путем изменения опции THEME
(config.py)
Chuanhu-Small-and-Beautiful
ссылка
IV: Ветви разработки этого проекта
- Ветка
master
: Основная ветка, стабильная версия - Ветвь
frontier
: Ветвь разработки, версия для тестирования
V: Справочники и обучение
В коде использовались многие функции, представленные в других отличных проектах, поэтому их порядок не имеет значения:
# ChatGLM2-6B от Тиньхуа:
https://github.com/THUDM/ChatGLM2-6B
# Линейные модели с ограниченной памятью от Тиньхуа:
https://github.com/Jittor/JittorLLMs
# ChatPaper:
https://github.com/kaixindelele/ChatPaper
# Edge-GPT:
https://github.com/acheong08/EdgeGPT
# ChuanhuChatGPT:
https://github.com/GaiZhenbiao/ChuanhuChatGPT
# Установщик с одним щелчком Oobabooga:
https://github.com/oobabooga/one-click-installers
# Больше:
https://github.com/gradio-app/gradio
https://github.com/fghrsh/live2d_demo