Laragenie - это AI Chatbot, который работает в командной строке из вашего приложения Laravel. Он сможет прочитать и понять любую из ваших кодовых баз после нескольких простых шагов:
Это так просто! Ускоряйте свой рабочий процесс мгновенно и беспрепятственно сотрудничает с самым быстрым и самым знающим «коллегой», который вы когда -либо имели.
Это особенно полезный бот CLI, который можно использовать для:
Вы не ограничиваются индексацией файлов, основанных на вашем проекте Laravel. Вы можете использовать это для Monorepo, или действительно любого репо на любом языке. Конечно, вы можете использовать этот инструмент для индексации файлов, которые также не связаны с кодом.
Все, что вам нужно сделать, это запустить этот инструмент CLI из каталога Laravel. Просто, верно?! ?

Примечание
Если вы обновляетесь с версии Laragenie ^1.0.63 > 1.1 , существует изменение переменных среды Pinecone. Пожалуйста, смотрите Openai и Pinecone.
Для конкретных версий, которые соответствуют вашим версиям PHP, Laravel и Laragenie, см. В таблице ниже:
| PHP | Ларавель Версия | Версия Ларагени |
|---|---|---|
| ^8.1 | ^10.0 | > = 1,0 <1,2 |
| ^8.2 | ^10.0, ^11.0 | ^1.2.0 |
В этом пакете используется Laravel Indects, которая поддерживает MacOS, Linux и Windows с WSL. Из -за ограничений в версии PHP Windows в настоящее время невозможно использовать подсказки Laravel в Windows за пределами WSL.
По этой причине Laravel Predpts поддерживает возвращение к альтернативной реализации, такой как помощник «Симфоническая консоль».
Вы можете установить пакет через композитор:
composer require joshembling/laragenieВы можете опубликовать и запустить миграцию с:
php artisan vendor:publish --tag= " laragenie-migrations "
php artisan migrateЕсли вы не хотите публиковать миграции, вы должны переключать учетные данные базы данных в вашей конфигурации Laragenie в False. (См. Подробности файла конфигурации ниже).
Вы можете опубликовать файл конфигурации с помощью:
php artisan vendor:publish --tag= " laragenie-config "Это содержимое опубликованного файла конфигурации:
return [
' bot ' => [
' name ' => ' Laragenie ' , // The name of your chatbot
' welcome ' => ' Hello, I am Laragenie, how may I assist you today? ' , // Your welcome message
' instructions ' => ' Write in markdown format. Try to only use factual data that can be pulled from indexed chunks. ' , // The chatbot instructions
],
' chunks ' => [
' size ' => 1000 , // Maximum number of characters to separate chunks
],
' database ' => [
' fetch ' => true , // Fetch saved answers from previous questions
' save ' => true , // Save answers to the database
],
' extensions ' => [ // The file types you want to index
' php ' ,
' blade.php ' ,
' js ' ,
],
' indexes ' => [
' directories ' => [], // The directores you want to index e.g. ['app/Models', 'app/Http/Controllers', '../frontend/src']
' files ' => [], // The files you want to index e.g. ['tests/Feature/MyTest.php']
' removal ' => [
' strict ' => true , // User prompt on deletion requests of indexes
],
],
' openai ' => [
' embedding ' => [
' model ' => ' text-embedding-3-small ' , // Text embedding model
' max_tokens ' => 5 , // Maximum tokens to use when embedding
],
' chat ' => [
' model ' => ' gpt-4-turbo-preview ' , // Your OpenAI GPT model
' temperature ' => 0.1 , // Set temperature between 0 and 1 (lower values will have less irrelevance)
],
],
' pinecone ' => [
' topK ' => 2 , // Pinecone indexes to fetch
],
];Этот пакет использует OpenAI для обработки и генерации ответов и PineCone для индексации ваших данных.
Вам нужно будет создать учетную запись OpenAI с кредитами, сгенерировать ключ API и добавить ее в свой файл .env :
OPENAI_API_KEY=your-open-ai-key
Важный
Если вы используете версию Laragenie до 1.1 и не хотите обновляться, перейдите прямо в Legacy Pinecone.
Вам нужно будет создать учетную запись Pinecone. Есть два различных типа учетной записи, которые вы можете настроить:
По состоянию на начало 2024 года Pinecone рекомендую вам начать с без серверной учетной записи. При желании вы можете настроить учетную запись с помощью способа оплаты, прикрепленного к получению 100 долларов в виде бесплатных кредитов, однако бесплатная учетная запись допускает до 100 000 индексов - вероятно, более чем достаточно для любого приложения для небольшого среднего размера.
Создайте индекс с размерами 1536 и метрикой как «косинус». Затем сгенерируйте клавишу API и добавьте эти данные в свой файл .env :
PINECONE_API_KEY=an-example-pinecone-api-key
PINECONE_INDEX_HOST='https://an-example-url.aaa.gcp-starter.pinecone.io'
Ваш хост можно увидеть в информационном поле на вашей странице индекса, наряду с метрикой, размерами, типом стручка, облаком, регионе и средах.
Кончик
Если вы обновляетесь до Laragenie ^1.1, вы можете безопасно удалить унаследованные переменные среды: PINECONE_ENVIRONMENT и PINECONE_INDEX .
ВАЖНО: Если вы используете Laragenie 1.0.63 или до этого, вы должны использовать обычную учетную запись Pinecone, а не учетную запись без сервера. Когда вы намекаете выбрать опцию по созданию учетной записи, убедитесь, что вы выбираете «продолжить с индексом на основе POD».
Создайте среду с 1536 измерениями и назовите ее, генерируйте ключ API и добавьте эти данные в свой файл .env :
PINECONE_API_KEY=your-pinecone-api-key
PINECONE_ENVIRONMENT=gcp-starter
PINECONE_INDEX=your-index
После того, как они будут настроены, вы сможете запустить следующую команду из вашего корневого каталога:
php artisan laragenieВы получите 4 варианта:
Используйте клавиши со стрелками , чтобы переключиться через параметры и введите , чтобы выбрать команду.

Примечание. Вы можете запустить это действие только после того, как у вас есть файлы, индексированные в вашей базе данных Vector Pinecone (пропустите раздел «Индексные файлы», если вы хотите узнать, как начать индексацию).
Когда в вашей векторной базе данных есть индексы, вы сможете задать любые вопросы, связанные с вашей кодовой базой.
Ответы могут быть сгенерированы в формате Markdown с примерами кода или любым форматом вашего выбора. Используйте конфигурацию bot.instructions , чтобы написать инструкции по ИИ настолько подробные, как вам нужно.
Под каждым ответом вы увидите сгенерированную стоимость (в долларах США), которая поможет следить за расходами. Стоимость ответа добавляется в вашу базу данных, если миграции включены.
Затраты могут варьироваться, но небольшие ответы будут составлять менее 0,01 доллара. Гораздо большие ответы могут составлять от 0,02 до 0,05 долл. США.
Как упоминалось ранее, когда у вас включены миграции, ваши вопросы сохранят вашу базу данных.
Тем не менее, вы можете заставить использование ИИ (предотвратить извлечение из базы данных), если вы недовольны первоначальным ответом. Это будет перезаписать ответ, уже сохраненный в базе данных.
Чтобы принудительно ответить на ИИ, вам нужно будет положить конец всем вопросам флагом --ai ,
Tell me how users are saved to the database --ai .
Это гарантирует, что модель ИИ будет повторно оценить ваш запрос и выведет другой ответ (это может быть тот же ответ в зависимости от модели GPT, которую вы используете).

Самый быстрый способ индексации файлов - передавать в единственные значения в directories или массивы files в конфигурации Laragenie. Когда вы запустите команду «Индексные файлы», у вас всегда будет возможность повторно переоценить эти файлы. Это поможет поддерживать ваш бот Laragenie в курсе.
Выберите «Да», когда вы предъявляете внимание Do you want to index your directories and files saved in your config?
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' ],
' files ' => [ ' tests/Feature/MyTest.php ' ],
' removal ' => [
' strict ' => true ,
],
],Если вы выберете «Нет», вы также можете индексировать файлы следующими способами:
app/Models/User.phpAppapp/Models для индексации всех ваших моделейapp/Models, tests/Feature, app/Http/Controllers/Controller.phpapp/Models/*.phplaragenie . Вы можете использовать Laragenie в любом случае, как вы хотите; Вы не ограничиваются просто индексацией файлов на основе Laravel.
Например, ваш проект Laravel может жить в монорепо с двумя корневыми записями, такими как frontend и backend . В этом случае вы можете перемещать на один уровень, чтобы индексировать больше каталогов и файлов ../frontend/components/Component.js ../frontend/src/ .
Вы можете добавить их в свои directories и files в конфигурации Laragenie:
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' , ' ../frontend/src/ ' ],
' files ' => [ ' tests/Feature/MyTest.php ' , ' ../frontend/components/Component.js ' ],
' removal ' => [
' strict ' => true ,
],
],Используя этот же метод, вы можете технически индексировать любые файлы или каталоги, к которым у вас есть доступ на вашем сервере или локальной машине.
Убедитесь, что ваши расширения в конфигурации Laragenie соответствуют всем типам файлов, которые вы хотите индексировать.
' extensions ' => [
' php ' , ' blade.php ' , ' js ' , ' jsx ' , ' ts ' , ' tsx ' , // etc...
],ПРИМЕЧАНИЕ. Если ваши каталоги, пути или имена файлов изменятся, Laragenie не сможет найти индекс, если вы решите обновить/удалить его позже (если вы не укроете всю свою векторную базу данных, или перейдите в Pinecone и удалите их вручную).

Вы можете удалить индексированные файлы, используя те же методы, перечисленные выше, за исключением использования ваших directories или массива files в конфигурации Laragenie - в настоящее время это предназначено только для целей индексации.
Если вы хотите удалить все файлы, вы можете сделать это, выбрав Remove all chunked data . Будьте осторожны, что это усекнет всю вашу векторную базу данных и не может быть изменено.

Чтобы удалить отдельный список файлов/каталогов, выберите Remove data associated with a directory or specific file в качестве опции.
Строгое удаление, т.е. Предупреждающие сообщения до удаления файлов могут быть включены/выключены, изменив «строгий» атрибут на False в вашей конфигурации.
' indexes ' => [
' removal ' => [
' strict ' => true ,
],
],Вы можете остановить Ларагени, используя следующие методы:
ctrl + c (Linux/Mac)No thanks, goodbye в меню пользователя после запуска как минимум 1 подсказка.Получайте удовольствие, используя Laragenie! ?
.env , но получите ошибку, такую как «вы не предоставили ключ API», вам может потребоваться очистить кэш и конфигурация: php artisan config:clear
php artisan cache:clearПожалуйста, смотрите ChangeLog для получения дополнительной информации о том, что изменилось в последнее время.
Пожалуйста, смотрите для получения подробной информации.
Пожалуйста, просмотрите нашу политику безопасности о том, как сообщать о уязвимости безопасности.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.