mirror of
https://github.com/TangentFoxy/.lua-files.git
synced 2024-11-20 21:34:23 +00:00
working on getting AI bullshit working
This commit is contained in:
parent
81a3f1066f
commit
29f5c72f46
@ -1,6 +1,10 @@
|
|||||||
# .lua-files
|
# .lua-files
|
||||||
It's like dotfiles, but no, it's just Lua scripts I find useful.
|
It's like dotfiles, but no, it's just Lua scripts I find useful.
|
||||||
|
|
||||||
|
## Most Useful Scripts
|
||||||
|
- `popen-command-test`: A badly-named WIP script for working with the doplhin-mixtral AI model through WSL using [ollama](https://github.com/jmorganca/ollama).
|
||||||
|
- `video-dl`: A few premade command lines for using `yt-dlp` to download what I want quicker.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
1. Put this folder somewhere.
|
1. Put this folder somewhere.
|
||||||
2. Add that somewhere to your path. (On Windows, search for Environment Variables (it's "part of" Control Panel) and use the UI to add them to System variables.)
|
2. Add that somewhere to your path. (On Windows, search for Environment Variables (it's "part of" Control Panel) and use the UI to add them to System variables.)
|
||||||
|
@ -1,38 +1,37 @@
|
|||||||
|
-- install command: curl https://ollama.ai/install.sh | sh
|
||||||
|
|
||||||
function os.command(command)
|
util = require("utility-functions")
|
||||||
local file = assert(io.popen(command, 'r'))
|
-- util.required_program("wsl") -- This fails on my system.
|
||||||
local output = assert(file:read('*a'))
|
util.required_program("pwsh") -- Apparently this is and isn't PowerShell. Isn't the future amazing?
|
||||||
file:close()
|
|
||||||
return output
|
-- On my system, it is impossible to call wsl directly from Lua. No idea why.
|
||||||
|
local function wsl_command(command, output_return)
|
||||||
|
local file_name = ".tmp." .. util.uuid()
|
||||||
|
local output
|
||||||
|
|
||||||
|
command = "pwsh -Command wsl --exec \"" .. util.escape_quotes(command) .. "\""
|
||||||
|
|
||||||
|
if output_return then
|
||||||
|
command = command .. " > " .. file_name
|
||||||
|
end
|
||||||
|
|
||||||
|
os.execute(command)
|
||||||
|
|
||||||
|
if output_return then
|
||||||
|
local file = io.open(file_name, "r")
|
||||||
|
local output = file:read("*a")
|
||||||
|
file:close()
|
||||||
|
os.execute("rm " .. file_name) -- TODO replace with version I know works from somewhere else
|
||||||
|
return output
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function string.trim6(s)
|
local function query_dolphin(prompt)
|
||||||
return s:match'^()%s*$' and '' or s:match'^%s*(.*%S)'
|
local command = "ollama run dolphin-mixtral \"" .. util.escape_quotes(prompt) .. "\""
|
||||||
|
return wsl_command(command, true)
|
||||||
|
-- TODO trim the above
|
||||||
|
|
||||||
|
-- os.execute("pwsh -Command wsl --exec \"ollama run dolphin-mixtral \\\"Say only the word 'cheese'.\\\"\" > test-output-file.txt")
|
||||||
end
|
end
|
||||||
|
|
||||||
print("---")
|
print(query_dolphin("Say only the word 'cheese'."))
|
||||||
|
|
||||||
-- local home = os.command("echo %userprofile%")
|
|
||||||
-- home = string.trim6(home)
|
|
||||||
-- print(home)
|
|
||||||
|
|
||||||
-- local dolphin_cheese = os.command("wsl -- ollama run dolphin-mixtral \"Say only the word 'cheese'.\"")
|
|
||||||
-- local dolphin_cheese = os.command("wsl")
|
|
||||||
-- os.execute("C:\\Windows\\System32\\wsl.exe")
|
|
||||||
-- local dolphin_cheese = os.command("echo %path%")
|
|
||||||
-- local dolphin_cheese = os.command("where wsl")
|
|
||||||
-- print(dolphin_cheese)
|
|
||||||
|
|
||||||
-- print(os.command("bash -c \"$PATH\""))
|
|
||||||
-- os.execute("bash -c \"ollama help\"")
|
|
||||||
|
|
||||||
-- runs but doesn't return anything?
|
|
||||||
-- local dolphin_cheese = os.command("pwsh -Command wsl -- ollama run dolphin-mixtral \"Say only the word 'cheese'.\"")
|
|
||||||
-- print(dolphin)
|
|
||||||
|
|
||||||
-- os.execute("pwsh -Command wsl -- ollama run dolphin-mixtral \"Say only the word 'cheese'.\"")
|
|
||||||
|
|
||||||
-- this will output to file in the correct place :D
|
|
||||||
os.execute("pwsh -Command wsl --exec \"ollama run dolphin-mixtral \\\"Say only the word 'cheese'.\\\"\" > test-output-file.txt")
|
|
||||||
|
|
||||||
print("---")
|
|
||||||
|
41
utility-functions.lua
Normal file
41
utility-functions.lua
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
math.randomseed(os.time())
|
||||||
|
|
||||||
|
-- TODO look for popen command and fall back to outputting to file if its unavailable
|
||||||
|
function os.command(command)
|
||||||
|
local file = assert(io.popen(command, 'r'))
|
||||||
|
local output = assert(file:read('*a'))
|
||||||
|
file:close()
|
||||||
|
return output
|
||||||
|
end
|
||||||
|
|
||||||
|
-- trim6 from Lua users wiki (best all-round pure Lua performance)
|
||||||
|
function string.trim(s)
|
||||||
|
return s:match'^()%s*$' and '' or s:match'^%s*(.*%S)'
|
||||||
|
end
|
||||||
|
|
||||||
|
local utility = {}
|
||||||
|
|
||||||
|
-- NOTE: This will print errors sometimes. :D
|
||||||
|
utility.required_program = function(name)
|
||||||
|
if os.execute("where " .. tostring(name)) ~= 0 then
|
||||||
|
error(tostring(name) .. " must be installed and in the path")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- modified from my fork of lume
|
||||||
|
utility.uuid = function()
|
||||||
|
local fn = function(x)
|
||||||
|
local r = math.random(16) - 1
|
||||||
|
r = (x == "x") and (r + 1) or (r % 4) + 9
|
||||||
|
return ("0123456789abcdef"):sub(r, r)
|
||||||
|
end
|
||||||
|
return (("xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"):gsub("[xy]", fn))
|
||||||
|
end
|
||||||
|
|
||||||
|
utility.escape_quotes = function(input)
|
||||||
|
input = input:gsub("\\", "\\\\")
|
||||||
|
input = input:gsub("\"", "\\\"")
|
||||||
|
return input
|
||||||
|
end
|
||||||
|
|
||||||
|
return utility
|
Loading…
Reference in New Issue
Block a user