Что нового

Скрипт для общения с оффлайн моделями искусственного интеллекта в формате gguf

NikolayKozloff

Новичок
Сообщения
1
Репутация
0
Версия AutoIt
3.3.16.1
Версия
0.1
Написал свой первый AutoIt скрипт, с помощью которого вы можете задавать вопросы оффлайн модели искусственного интеллекта. Скрипт использует библиотеку Dllama: https://github.com/tinyBigGAMES/Dllama

Текст скрипта:

Код:
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <StringConstants.au3>

DllCall("User32.dll", "bool", "SetProcessDpiAwarenessContext" , "HWND", "DPI_AWARENESS_CONTEXT" -2)
Opt("GUIOnEventMode", 1)

Local $hMainGUI = GUICreate("Искусственный интеллект в AutoIt", 925, 950)

GUISetOnEvent($GUI_EVENT_CLOSE, "terminate_app")
Local $start_thinking = GUICtrlCreateButton("Думай и отвечай, ИИ!", 350, 890, 250, 50)
Local $place_for_question = GUICtrlCreateInput("Введите сюда Ваш вопрос для ИИ (на английском языке).", 10, 15, 900, 40)
Local $place_for_answer = GUICtrlCreateEdit("Здесь искусственный интеллект отобразит ответ на Ваш вопрос.", 10, 80, 900, 800, $ES_MULTILINE)
GUICtrlSetOnEvent($start_thinking, "get_answer")
GUICtrlSetFont($place_for_question, 14)
GUICtrlSetFont($place_for_answer, 14)
GUICtrlSetFont($start_thinking, 14)
GUISetState(@SW_SHOW, $hMainGUI)

While 1
Sleep(100)
WEnd

Func get_answer()

Local $question
$question = GUICtrlRead($place_for_question)
Local $hDLL = DllOpen("Dllama.dll")
Local $answer = DllCall($hDLL, "str:cdecl", "Dllama_Simple_Inference", "str", "C:\LLM\gguf\", "str", "models.json", "str", "phi3:4B:Q4", "boolean", False, "uint", 1024, "int", 27, "str", $question)
GUICtrlSetData($place_for_answer, $answer[0])
DllClose($hDLL)
EndFunc

Func terminate_app()
Exit
EndFunc


Для работы скрипта нужно создать на диске С папку LLM, а в ней - папку gguf. Таким образом, сам скрипт, файл настроек модели ИИ models.json, библиотека функций Dllama.dll (скачиваем её отсюда: https://github.com/tinyBigGAMES/Dllama/blob/main/bin/Dllama.dll) и сама модель ИИ (скачать её можно отсюда - https://huggingface.co/microsoft/Ph.../Phi-3-mini-4k-instruct-q4.gguf?download=true) должны находиться в папке по адресу C:\LLM\gguf.
Файл models.json должен содержать следующий текст:
{
"Models": [
{
"Filename": "Phi-3-mini-4k-instruct-q4.gguf",
"Name": "phi3:4B:Q4",
"MaxContext": 4000,
"ChatMessageTemplate": "<|%s|>\\n %s<|end|>\\n",
"AChatMessageTemplateEnd": "<|assistant|>\\n",
"StopSequences": [
"<|user|>",
"<|assistant|>",
"<|system|>",
"<|end|>",
"<|endoftext|>"
]
}
]
}

По умолчанию генерация ответа ИИ осуществляется с помощью процессора Вашего ПК/ноутбука. Это немного медленно. Если на Вашем ПК/ноутбуке установлена видеокарта, поддерживающая технологию vulkan, можно задействовать её вычислительные мощности для генерации ответа ИИ, что значительно ускорит этот процесс. Для того чтобы выбрать видеокарту в качестве устройства, выполняющего расчеты ИИ, нужно изменить параметр False на параметр True вот в этой строчке скрипта:

Local $answer = DllCall($hDLL, "str:cdecl", "Dllama_Simple_Inference", "str", "C:\LLM\gguf\", "str", "models.json", "str", "phi3:4B:Q4", "boolean", False, "uint", 1024, "int", 27, "str", $question)

Пример работы скрипта можно увидеть на прикрепленном скриншоте.
 
Автор
Николай Козлов
Источник
Ссылка на источник

Вложения

  • Dllama_GUI_AutoIt.au3
    2.9 КБ · Просмотры: 2
  • Dllama.dll.zip
    1.8 МБ · Просмотры: 4
  • models.json.zip
    348 байт · Просмотры: 3
  • Пример работы ИИ.png
    Пример работы ИИ.png
    296.4 КБ · Просмотры: 10
Верх