TL;DR версия
PromptScript — это облегченный скрипт DSL (Yaml) для отладки Prompt, предназначенный для быстрого использования и создания Prompt.
Документация PromptScript: https://framework.unitmesh.cc/prompt-script.
Несколько месяцев назад, изучая LLM с целью повышения эффективности исследований, мы создали проект DevTi под UnitMesh (https://github.com/unit-mesh) для пакетной обработки данных и быстрой проверки. Например, проверьте, является ли сгенерированный UML такое UML и можно ли успешно скомпилировать UML.
Соответствующие этапы обработки данных:
В дополнение к этому сценарию пакетной генерации данных при написании приложения AIGC нам также необходимо учитывать влияние различных параметров.
Основываясь на этом, мы создали PromptScript на Chocolate Factory, чтобы ускорить тестирование LLM и проверку эффективности.
PromptScript — это легкий инструмент сценариев DSL (Domain-Specific Language), используемый для тестирования и проверки LLM (языковой модели). Он имеет следующие основные особенности:
PromptScript предназначен для упрощения процесса тестирования LLM, повышения эффективности и предоставления пользователям большей гибкости и удобства обслуживания.
На следующем рисунке показан пример PromptScript:
Здесь скрипт будет разделен на четыре части:
Затем нам нужно использовать PromptScriptCli только для настройки соответствующего yaml и сохранения его в соответствующем файле результатов.
Теперь давайте еще раз посмотрим на упрощенный пример задания PromptScript:
connection: connection.yml
template: code-complete.open-ai.vm
template-datasource:
- type: file
value: datasource.json
strategy:
- type: connection
value:
- type: range
key: temperature
range: 0.7~1.0
step: 0.1
validate:
- type: json-path
value: $.id
Первый элемент конфигурации — соединение. Соединение будет решать, какого поставщика LLM использовать в зависимости от разных типов. Например, ниже приведена макетная конфигурация для локального тестирования, которая будет возвращать только значение по умолчанию (ответ API):
name: mock_response
type: MockLlm
configs:
api-response: "{\"text\": \"this is a mock resource\"}"
Ниже приведен элемент конфигурации OpenAI:
name: open_ai_connection
type: OpenAI
configs:
api-host: xx
secrets:
api-key: xxx
Эта конфигурация YAML поддерживает различные доступы к LLM. (PS: в будущем должно поддерживаться сравнение нескольких LLM)
Быстрое создание в основном зависит от механизма модели и соответствующего источника данных. Например, наш приоритетный механизм шаблонов — это файлы шаблонов, которые можно выделить в Intellij IDE, VS Code и т. д., например Apache Velocity.
Впоследствии соответствующие данные загружаются в соответствии с источником данных для визуализации шаблона.
template-datasource:
- type: file
value: datasource.json
Например, файл здесь считывает данные из файла json и объединяет их с шаблоном для отображения в приглашении.
Текущая стратегия задач поддерживает только два относительно простых метода, а именно повторение и параметризованную настройку LLM. Оба метода используются для проверки того, может ли результат запроса удовлетворить наши потребности:
- type: connection
value:
- type: range
key: temperature
range: 0.7~1.0
step: 0.1
- type: repeat
value: 20
В будущем по мере необходимости будут добавляться новые стратегии миссий.
Последняя часть — это проверка результатов, сгенерированных LLM, который в настоящее время поддерживает такие методы проверки, как JsonPath, String, Regex, MarkdownCodeBlock, Json и ExtTool.
Пример:
- type: json-path
value: $.store.book[0].title
- type: string
value: output contains "hello"
- type: regex
value: \d{4}
- type: markdown-code
Выберите подходящую проверку на основе различных результатов запроса.
GitHub:https://github.com/unit-mesh/chocolate-factory
PromptScript поддерживает различные виды доступа к LLM через файлы конфигурации YAML, позволяя пользователям определять шаблоны и источники данных для создания подсказок. Пользователи также могут настраивать стратегии задач и методы проверки результатов, чтобы проверить, соответствуют ли сгенерированные результаты требованиям.
PromptScript призван предоставить удобный инструмент для изучения LLM, пакетной обработки данных и быстрой проверки для повышения производительности и результатов тестирования.