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
|
## 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`:
|
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 { WebpackPlugin } from '@electron-forge/plugin-webpack'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
|
import * as os from 'fs'
|
||||||
|
|
||||||
import { mainConfig } from './webpack.main.config'
|
import { mainConfig } from './webpack.main.config'
|
||||||
import { rendererConfig } from './webpack.renderer.config'
|
import { rendererConfig } from './webpack.renderer.config'
|
||||||
|
@ -19,7 +20,7 @@ const config: ForgeConfig = {
|
||||||
appVersion: process.env.VERSION || packageJson.version,
|
appVersion: process.env.VERSION || packageJson.version,
|
||||||
asar: true,
|
asar: true,
|
||||||
icon: './images/icon',
|
icon: './images/icon',
|
||||||
extraResource: ['../ollama', '../ggml-metal.metal'],
|
extraResource: ['../ollama', ...(process.platform === 'darwin' ? ['../ggml-metal.metal'] : [])],
|
||||||
...(process.env.SIGN
|
...(process.env.SIGN
|
||||||
? {
|
? {
|
||||||
osxSign: {
|
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() {
|
function installCLI() {
|
||||||
const symlinkPath = '/usr/local/bin/ollama'
|
const symlinkPath = '/usr/local/bin/ollama'
|
||||||
|
|
||||||
|
@ -93,7 +112,10 @@ function installCLI() {
|
||||||
// Some APIs can only be used after this event occurs.
|
// Some APIs can only be used after this event occurs.
|
||||||
app.on('ready', () => {
|
app.on('ready', () => {
|
||||||
createWindow()
|
createWindow()
|
||||||
installCLI()
|
|
||||||
|
if (app.isPackaged) {
|
||||||
|
installCLI()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Quit when all windows are closed, except on macOS. There, it's common
|
// Quit when all windows are closed, except on macOS. There, it's common
|
||||||
|
|
Loading…
Reference in a new issue