О чём урок
Этот notebook демонстрирует, как Ada embeddings могут быть использованы для реализации семантического поиска кода. Для этой демонстрации мы используем наш собственный репозиторий кода openai-python. Мы реализуем простую версию парсинга файлов и извлечения функций из файлов Python, которые затем могут быть embedded, проиндексированы и запрошены. Сначала мы настроим несколько простых функций парсинга, которые позволят нам извлекать важную информацию из нашей кодовой базы. Сначала мы загрузим папку openai-python и извлечем необходимую информацию, используя функции, которые мы определили выше. Теперь, когда у нас есть наш контент, мы можем передать данные модели text-embedding-3-small и получить наши векторные embeddings. code function_name filepath code_embedding 0 def _console_log_level():\n if openai.log i... _console_log_level openai/util.py [0.005937571171671152, 0.05450401455163956, 0.... 1 def log_debug(message, **params):\n msg = l... log_debug openai/util.py [0.017557814717292786, 0.05647840350866318, -0... 2 def log_info(message, **params):\n msg = lo... log_info openai/util.py [0.022524144500494003, 0.06219055876135826, -0... 3 def log_warn(message, **params):\n msg = lo... log_warn openai/util.py [0.030524108558893204, 0.0667714849114418, -0.... 4 def logfmt(props):\n def fmt(key, val):\n ... logfmt openai/util.py [0.05337328091263771, 0.03697286546230316, -0.... Давайте протестируем наш endpoint с помощью нескольких простых запросов. Если вы знакомы с репозиторием openai-python, вы увидите, что мы можем легко находить нужные функции, используя лишь простое описание на английском языке. Мы определяем метод `search_functions`, который принимает наши данные, содержащие embeddings, строку запроса и некоторые другие параметры конфигурации. Процесс поиска в нашей базе данных работает следующим образом: Сначала мы embedded нашу строку запроса (code_query) с помощью text-embedding-3-small. Причина в том, что строка запроса, такая как 'функция, которая переворачивает строку', и функция, такая как 'def reverse(string): return string[::-1]', будут очень похожи при embedded.
План урока
- Поиск кода с использованием embeddings
- Вспомогательные функции
- Тестирование
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.