Skip to content

Commit

Permalink
Add ramalama rag command
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel J Walsh <[email protected]>
  • Loading branch information
rhatdan committed Dec 6, 2024
1 parent 6924f53 commit 62a51ba
Show file tree
Hide file tree
Showing 9 changed files with 69 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:

jobs:
build:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
bats:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install bats
Expand All @@ -25,7 +25,7 @@ jobs:
make bats
bats-nocontainer:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install bats
Expand All @@ -41,7 +41,7 @@ jobs:
make bats-nocontainer
docker:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install bats
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
make bats-docker
macos:
runs-on: macos-14
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: install golang
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
linux:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Free Disk Space Linux
Expand Down Expand Up @@ -41,7 +41,7 @@ jobs:
run: make test

macos:
runs-on: macos-14
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: install golang
Expand All @@ -52,7 +52,7 @@ jobs:
run: make test

build:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
needs: [linux, macos]
steps:
- uses: actions/checkout@v4
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
linux:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Free Disk Space Linux
Expand Down Expand Up @@ -36,7 +36,7 @@ jobs:
run: make test

macos:
runs-on: macos-14
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: install golang
Expand All @@ -47,7 +47,7 @@ jobs:
run: make test

build:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
needs: [linux, macos]
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion docs/ramalama-info.1.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
% ramalama-info 1

## NAME
ramalama\-info - Display RamaLama configuration information
ramalama\-info - display RamaLama configuration information


## SYNOPSIS
Expand Down
28 changes: 28 additions & 0 deletions docs/ramalama-rag.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
% ramalama-rag 1

## NAME
ramalama\-rag - generate rag (Retrieval Augmented Generation) data from provided documents and convert into an OCI Image

## SYNOPSIS
**ramalama rag** [options] [path ...] image


## DESCRIPTION
Generate rag data from provided documents and convert into an OCI Image

positional arguments:
path Files/Directory containing PDF, DOCX, PPTX, XLSX, HTML, AsciiDoc & Markdown formatted files to be processed. Can be specified multiple times.

image OCI Image name to contain processed rag data


## OPTIONS

#### **--help**, **-h**
Print usage message

## SEE ALSO
**[ramalama(1)](ramalama.1.md)**

## HISTORY
Dec 2024, Originally compiled by Dan Walsh <[email protected]>
3 changes: 2 additions & 1 deletion docs/ramalama.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ The default can be overridden in the ramalama.conf file.
| Command | Description |
| ------------------------------------------------- | ---------------------------------------------------------- |
| [ramalama-containers(1)](ramalama-containers.1.md)| list all RamaLama containers |
| [ramalama-info(1)](ramalama-info.1.md) | Display RamaLama configuration information |
| [ramalama-rag(1)](ramalama-rag.1.md) | generate rag (Retrieval Augmented Generation) data from provided documents and convert into an OCI Image |
| [ramalama-info(1)](ramalama-info.1.md) | display RamaLama configuration information |
| [ramalama-list(1)](ramalama-list.1.md) | list all downloaded AI Models |
| [ramalama-login(1)](ramalama-login.1.md) | login to remote registry |
| [ramalama-logout(1)](ramalama-logout.1.md) | logout from remote registry |
Expand Down
25 changes: 24 additions & 1 deletion ramalama/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import subprocess
import time
import ramalama.oci
import ramalama.rag

from ramalama.huggingface import Huggingface
from ramalama.common import (
Expand All @@ -15,6 +16,7 @@
perror,
run_cmd,
)

from ramalama.model import model_types
from ramalama.oci import OCI
from ramalama.ollama import Ollama
Expand Down Expand Up @@ -232,6 +234,7 @@ def configure_subcommands(parser):
logout_parser(subparsers)
pull_parser(subparsers)
push_parser(subparsers)
rag_parser(subparsers)
rm_parser(subparsers)
run_parser(subparsers)
serve_parser(subparsers)
Expand Down Expand Up @@ -405,7 +408,7 @@ def list_containers(args):


def info_parser(subparsers):
parser = subparsers.add_parser("info", help="Display information pertaining to setup of RamaLama.")
parser = subparsers.add_parser("info", help="display information pertaining to setup of RamaLama.")
parser.add_argument("--container", default=False, action="store_false", help=argparse.SUPPRESS)
parser.set_defaults(func=info_cli)

Expand Down Expand Up @@ -730,6 +733,26 @@ def version_parser(subparsers):
parser.set_defaults(func=print_version)


def rag_parser(subparsers):
parser = subparsers.add_parser(
"rag",
help="generate rag (Retrieval Augmented Generation) data from provided documents and convert into an OCI Image",
)
parser.add_argument(
"PATH",
nargs="*",
help="""\
Files/Directory containing PDF, DOCX, PPTX, XLSX, HTML, AsciiDoc & Markdown
formatted files to be processed""",
)
parser.add_argument("IMAGE", help="OCI Image name to contain processed rag data")
parser.set_defaults(func=rag_cli)


def rag_cli(args):
ramalama.rag.generate(args)


def rm_parser(subparsers):
parser = subparsers.add_parser("rm", help="remove AI Model from local storage")
parser.add_argument("--container", default=False, action="store_false", help=argparse.SUPPRESS)
Expand Down
3 changes: 3 additions & 0 deletions ramalama/rag.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
def generate(args):
print(args.PATH)
print(args.IMAGE)

0 comments on commit 62a51ba

Please sign in to comment.