-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Check API KEYs file to API.go #1381
Conversation
Signed-off-by: lunamidori5 <118759930+lunamidori5@users.noreply.github.com>
✅ Deploy Preview for localai canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After talking this over with Luna in discord, I think we can merge this as-is, and I can take over the improvements in a fast follow PR.
validApiKey = true | ||
} | ||
// Check for api_keys.json file | ||
fileContent, err := ioutil.ReadFile("api_keys.json") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lunamidori5 - Do we know what the performance impact of ioutil.ReadFile
on every request will be? @mudler is more familiar with golang and would know if this is a concern or not - it might be worth some performance testing in the meantime.
Personally, I would be inclined to use something like https://pkg.go.dev/github.com/fsnotify/fsnotify to watch the file and keep options.ApiKeys up-to-date - that way, we aren't hitting the filesystem on every single request?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to keep it simple we can also just load the file once on start and pass the api keys down the line as a list
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mudler needs to be reloaded on request so we dont have to restart the program everytime is the goal, this way we can add keys as its running
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lunamidori5 - Do we know what the performance impact of
ioutil.ReadFile
on every request will be? @mudler is more familiar with golang and would know if this is a concern or not - it might be worth some performance testing in the meantime.Personally, I would be inclined to use something like https://pkg.go.dev/github.com/fsnotify/fsnotify to watch the file and keep options.ApiKeys up-to-date - that way, we aren't hitting the filesystem on every single request?
I guess? I dont know much about GO...
validApiKey := false | ||
for _, key := range options.ApiKeys { | ||
if apiKey == key { | ||
validApiKey = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we can move the c.Next() up here - no need to check further api keys if one passes the test - at least until we need to support per-endpoint api keys or anything weird.
…1.0 by renovate (#16284) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [quay.io/go-skynet/local-ai](https://togithub.com/mudler/LocalAI) | minor | `v2.0.0-cublas-cuda11` -> `v2.1.0-cublas-cuda11` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>mudler/LocalAI (quay.io/go-skynet/local-ai)</summary> ### [`v2.1.0`](https://togithub.com/mudler/LocalAI/releases/tag/v2.1.0) [Compare Source](https://togithub.com/mudler/LocalAI/compare/v2.0.0...v2.1.0) <!-- Release notes generated using configuration in .github/release.yml at master --> ##### What's Changed ##### Breaking Changes 🛠 - feat(alias): alias llama to llama-cpp, update docs by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1448 ##### Bug fixes 🐛 - fix(piper): pin petals, phonemize and espeak by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1393 - update(llama.cpp): update server, correctly propagate LLAMA_VERSION by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1440 ##### Exciting New Features 🎉 - Added Check API KEYs file to API.go by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1381 - exllama(v2): fix exllamav1, add exllamav2 by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1384 - Fix: API Key / JSON Fast Follow [#​1](https://togithub.com/mudler/LocalAI/issues/1) by [@​dave-gray101](https://togithub.com/dave-gray101) in [mudler/LocalAI#1388 - feat: add transformers-musicgen backend by [@​dave-gray101](https://togithub.com/dave-gray101) in [mudler/LocalAI#1387 - feat(diffusers): update, add autopipeline, controlnet by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1432 - feat(img2vid,txt2vid): Initial support for img2vid,txt2vid by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1442 ##### 👒 Dependencies - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1378 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1379 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1430 - ⬆️ Update mudler/go-piper by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1441 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1434 ##### Other Changes - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1385 - docs: site update fixing old image text / How To update updating GPU and CPU docker pages by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1399 - feat: cuda transformers by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1401 - feat(entrypoint): optionally prepare extra endpoints by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1405 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1390 - ⬆️ Update mudler/go-piper by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1400 - tests: add diffusers tests by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1419 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1418 - How To Updates / Model Used Switched / Removed "docker-compose" (RIP) by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1417 - fix(transformers\*): add sentence-transformers and transformers-musicgen tests, fix musicgen wrapper by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1420 - extras: add vllm,bark,vall-e-x tests, bump diffusers by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1422 - Documentation for Hipblas by [@​sfxworks](https://togithub.com/sfxworks) in [mudler/LocalAI#1425 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1391 - docs: add aikit to integrations by [@​sozercan](https://togithub.com/sozercan) in [mudler/LocalAI#1412 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1429 - docs(mixtral): add mixtral example by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1449 ##### New Contributors - [@​sozercan](https://togithub.com/sozercan) made their first contribution in [mudler/LocalAI#1412 **Full Changelog**: mudler/LocalAI@v2.0.0...v2.1.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 10pm on monday" in timezone Europe/Amsterdam, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEwMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
…1.0@f0b3afa by renovate (#16304) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [quay.io/go-skynet/local-ai](https://togithub.com/mudler/LocalAI) | minor | `v2.0.0-cublas-cuda12-ffmpeg` -> `v2.1.0-cublas-cuda12-ffmpeg` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>mudler/LocalAI (quay.io/go-skynet/local-ai)</summary> ### [`v2.1.0`](https://togithub.com/mudler/LocalAI/releases/tag/v2.1.0) [Compare Source](https://togithub.com/mudler/LocalAI/compare/v2.0.0...v2.1.0) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### Breaking Changes 🛠 - feat(alias): alias llama to llama-cpp, update docs by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1448 ##### Bug fixes 🐛 - fix(piper): pin petals, phonemize and espeak by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1393 - update(llama.cpp): update server, correctly propagate LLAMA_VERSION by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1440 ##### Exciting New Features 🎉 - Added Check API KEYs file to API.go by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1381 - exllama(v2): fix exllamav1, add exllamav2 by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1384 - Fix: API Key / JSON Fast Follow [#​1](https://togithub.com/mudler/LocalAI/issues/1) by [@​dave-gray101](https://togithub.com/dave-gray101) in [mudler/LocalAI#1388 - feat: add transformers-musicgen backend by [@​dave-gray101](https://togithub.com/dave-gray101) in [mudler/LocalAI#1387 - feat(diffusers): update, add autopipeline, controlnet by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1432 - feat(img2vid,txt2vid): Initial support for img2vid,txt2vid by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1442 ##### 👒 Dependencies - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1378 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1379 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1430 - ⬆️ Update mudler/go-piper by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1441 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1434 ##### Other Changes - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1385 - docs: site update fixing old image text / How To update updating GPU and CPU docker pages by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1399 - feat: cuda transformers by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1401 - feat(entrypoint): optionally prepare extra endpoints by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1405 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1390 - ⬆️ Update mudler/go-piper by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1400 - tests: add diffusers tests by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1419 - ⬆️ Update ggerganov/whisper.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1418 - How To Updates / Model Used Switched / Removed "docker-compose" (RIP) by [@​lunamidori5](https://togithub.com/lunamidori5) in [mudler/LocalAI#1417 - fix(transformers\*): add sentence-transformers and transformers-musicgen tests, fix musicgen wrapper by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1420 - extras: add vllm,bark,vall-e-x tests, bump diffusers by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1422 - Documentation for Hipblas by [@​sfxworks](https://togithub.com/sfxworks) in [mudler/LocalAI#1425 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1391 - docs: add aikit to integrations by [@​sozercan](https://togithub.com/sozercan) in [mudler/LocalAI#1412 - ⬆️ Update ggerganov/llama.cpp by [@​localai-bot](https://togithub.com/localai-bot) in [mudler/LocalAI#1429 - docs(mixtral): add mixtral example by [@​mudler](https://togithub.com/mudler) in [mudler/LocalAI#1449 #### New Contributors - [@​sozercan](https://togithub.com/sozercan) made their first contribution in [mudler/LocalAI#1412 **Full Changelog**: mudler/LocalAI@v2.0.0...v2.1.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 10pm on monday" in timezone Europe/Amsterdam, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEwMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
Description
@mudler I am not super knowing about go, but this PR trys to add a way to save a file and have it checked on request for API keys with out having to fully reset the docker every time.
This PR fixes #
#1355
Notes for Reviewers
Please help if I did something wrong, I really do not know go that well but did my best I know how.
Signed commits