aboutsummaryrefslogtreecommitdiffstats
path: root/ollama.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ollama.lua30
1 files changed, 19 insertions, 11 deletions
diff --git a/ollama.lua b/ollama.lua
index 3692c67..779e450 100644
--- a/ollama.lua
+++ b/ollama.lua
@@ -10,41 +10,49 @@ local ollama = {}
local loop = cq.new()
-function ollama.ollama_req(clipboard_content)
- local url = "http://172.17.0.1:11434/api/chat"
+function ollama.ollama_req(clipboard_content, args)
+ local url = args["ollama_endpoint"]
local req = http_request.new_from_uri(url)
local body = {
- model = "llama3.1",
+ model = args["ollama_model"],
stream = false,
format = "json",
messages = {
{content = clipboard_content, role = "user"}, {
content = [[
- a public key is not a secret.
- a private key is a secret.
- a private key is a seceret.
+ Learn the following rules. the rules are provided in no particular order:
+ ---
+ a public key of an assymetric key-pair is a secret.
+ a private key of an assymetric key-pair is a secret.
an api key is a secret.
a password is a secret.
- a token is a secret.
+ a token used for authentication or authorization is a secret.
a key-value pair is a secret if the key contains the word 'password'or 'secret' or 'token' or 'key'.
+ a string containing the word 'password' or 'secret' or 'token' or 'key' is a secret.
+ a string that contains a word longer than 20 characters is a secret.
+ a word that is not part of any of the languages you know which is longer than 20 characters is a secret.
a long string of random characters is a secret.
+ one matching positive matching criteria is enough to consider a string a secret.
+ ---
]],
role = "assistant"
}, {
content = [[
- Only answer in json.
+ Only answer in json.
The answer must a field named 'isSecret'.
The answer must have a field named 'reasoning'.
The value of 'isSecret' must be a boolean.
The value of reasoning must be a string.
+ You must give a reason.
+ The reason must be the criteria that was used to determine if the string is a secret.
The answer must be valid json.
]],
role = "assistant"
}, {
content = [[
Now I will give you your task.
- Look at the user-provided string content.
+ Look at the user-provided string content.
Is it a secret? answer in json.
]],
role = "assistant"
@@ -73,13 +81,13 @@ function ollama.ollama_req(clipboard_content)
return result_body
end
-function ollama.ask_ollama(clipboard_content, count)
+function ollama.ask_ollama(clipboard_content, args, count)
local true_count = 0
local false_count = 0
loop:wrap(function()
for _ = 1, count do
loop:wrap(function()
- local result = ollama.ollama_req(clipboard_content)
+ local result = ollama.ollama_req(clipboard_content, args)
local result_decoded = json.decode(result)
local final_result = json.decode(
result_decoded["message"]["content"])