Это исходный код www.gptflix.ai
Мы построим бот QA -QA GPTflix с OpenAI, Pinecone DB и потоковой линии. Вы узнаете, как подготовить текст для отправки в модель встраивания. Вы поймаете вставки и текст, возвращаемый из модели для загрузки в Pinecone DB. После этого вы настроите индекс DB Pinecone и загрузите встроенные внедорожники в БД, чтобы бот для поиска построек.
Наконец, мы настроим приложение чата QA Bot Frontend с Streamlit. Когда пользователь задает вопросом бота, бот будет искать текст фильма в вашем Pinecone DB. Это ответит на ваш вопрос о фильме, основанном на тексту из БД.
Это предназначено как базовые леса для создания собственных систем, повторных знаний, на данный момент очень базовый!
Этот репо содержит исходный код GPTflix и руководство по развертыванию.
Это репо установлено для развертывания на потоковой линии, вы захотите установить переменные среды в стриме, как это:
Разветете репо Gptflix в свою учетную запись GitHub.
Настройка учетной записи на pinecone.io
Настройка учетной записи в облаке потока
Создайте новое приложение на Streamlit. Свяжите его с вашей вилку репо на GitHub, затем укажите приложение на /chat/main.py
в качестве основного исполняемого файла.
Перейдите в настройки приложения и перейдите к секретам. Настройте секрет таким образом:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
в корне проекта с вашим ключом API OpenAI на вашей локальной машине. PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Этим необходимо быть вашими клавишами API Pinecone и Openai;), конечно,;)
Это репо установлено для прохождения демонстрации, используя данные MPST в /data_samples Это шаги:
p1.generate_index_mpst.py
, чтобы подготовить текст от ./data_sample/d0.mpst_1k_raw.csv
в формат, который мы можем ввести в модель и получить ее внедрение. python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
, чтобы преобразовать ваш новый файл d1.mpst_1k_converted.csv
в файл jsonl с инструкциями по запуску запросов Enterdings против API OpenAI. python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
в файле jsonl из (2), чтобы получить встраивание. python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
с новым файлом jsonl, чтобы сделать красивый CSV с текстом и внедрений. python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
с помощью клавиши API и настройки базы данных, чтобы загрузить все эти текстовые данные и вставки. python p5.upload_to_pinecone.py
Вы можете запустить приложение локально, но вам нужно удалить изображения (пути различаются в облаке потока)
На данный момент есть некоторые данные в sample_data, все взяты из Kaggle в качестве примеров.
[] Добавить память: суммируйте предыдущие вопросы / ответы и подготовить к запросу
[] Добавить разные режимы: более широкий поиск в базе данных
[] Добавьте разные режимы: тона / символы AI для ответов
[] Лучшие документы
Скоро появятся лучшие документы! Не стесняйтесь вносить их в свой вклад :)
#ЛИЦЕНЗИЯ
MIT Лицензия
Copyright (C) 2023 Стефан Стерджес
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.