always use ollama
binary
This commit is contained in:
parent
7cf5905063
commit
39f4d8edaa
3 changed files with 27 additions and 4 deletions
|
@ -6,10 +6,10 @@ This app builds upon Ollama to provide a desktop experience for running models.
|
|||
|
||||
## Developing
|
||||
|
||||
In the background run the ollama server `ollama.py`:
|
||||
First, build the `ollama` binary:
|
||||
|
||||
```
|
||||
poetry -C .. run ollama serve
|
||||
make -C ..
|
||||
```
|
||||
|
||||
Then run the desktop app with `npm start`:
|
||||
|
|
|
@ -8,6 +8,7 @@ import { AutoUnpackNativesPlugin } from '@electron-forge/plugin-auto-unpack-nati
|
|||
import { WebpackPlugin } from '@electron-forge/plugin-webpack'
|
||||
import * as path from 'path'
|
||||
import * as fs from 'fs'
|
||||
import * as os from 'fs'
|
||||
|
||||
import { mainConfig } from './webpack.main.config'
|
||||
import { rendererConfig } from './webpack.renderer.config'
|
||||
|
@ -19,7 +20,7 @@ const config: ForgeConfig = {
|
|||
appVersion: process.env.VERSION || packageJson.version,
|
||||
asar: true,
|
||||
icon: './images/icon',
|
||||
extraResource: ['../ollama', '../ggml-metal.metal'],
|
||||
extraResource: ['../ollama', ...(process.platform === 'darwin' ? ['../ggml-metal.metal'] : [])],
|
||||
...(process.env.SIGN
|
||||
? {
|
||||
osxSign: {
|
||||
|
|
|
@ -57,6 +57,25 @@ if (app.isPackaged) {
|
|||
})
|
||||
}
|
||||
|
||||
function server() {
|
||||
const binary = app.isPackaged
|
||||
? path.join(process.resourcesPath, 'ollama')
|
||||
: path.resolve(__dirname, '..', '..', 'ollama')
|
||||
|
||||
console.log(`Starting server`)
|
||||
const proc = spawn(binary, ['serve'])
|
||||
proc.stdout.on('data', data => {
|
||||
console.log(`server: ${data}`)
|
||||
})
|
||||
proc.stderr.on('data', data => {
|
||||
console.error(`server: ${data}`)
|
||||
})
|
||||
|
||||
process.on('exit', () => {
|
||||
proc.kill()
|
||||
})
|
||||
}
|
||||
|
||||
function installCLI() {
|
||||
const symlinkPath = '/usr/local/bin/ollama'
|
||||
|
||||
|
@ -93,7 +112,10 @@ function installCLI() {
|
|||
// Some APIs can only be used after this event occurs.
|
||||
app.on('ready', () => {
|
||||
createWindow()
|
||||
installCLI()
|
||||
|
||||
if (app.isPackaged) {
|
||||
installCLI()
|
||||
}
|
||||
})
|
||||
|
||||
// Quit when all windows are closed, except on macOS. There, it's common
|
||||
|
|
Loading…
Reference in a new issue