1.1.5 • Published 12 days ago

@oramacloud/client v1.1.5

Weekly downloads
-
License
ISC
Repository
-
Last release
12 days ago

Orama Cloud Client

Node.js CI

Install

npm i @oramacloud/client

Integrating with Orama Cloud

import { OramaClient } from "@oramacloud/client";

const client = new OramaClient({
  endpoint: "<Your Orama Cloud Endpoint>",
  api_key: "<Your Orama Cloud API Key>",
});

const results = await client.search({
  term: "red leather shoes",
});

Advanced search

const results = await client.search({
  term: "red leather shoes",
  where: {
    price: {
      lte: 9.99,
    },
    gender: "unisex",
  },
  limit: 5,
  offset: 1,
});

Generating embeddings via the Secure Proxy

import { OramaProxy } from "@oramacloud/client";

const proxy = new OramaClient({
  api_key: "<Your Orama Secure Proxy API Key>",
});

const embeddings = await proxy.generateEmbeddings(
  "red leather shoes",
  "openai/text-embedding-ada-002"
);

console.log(embeddings);
// [-0.019633075, -0.00820422, -0.013555876, -0.011825735, 0.006641511, -0.012948156, ...]

Available models:

  • orama/gte-small. 384 dimensions, operated by Orama Cloud (preferred)
  • orama/gte-medium. 768 dimensions, operated by Orama Cloud
  • orama/gte-large. 1024 dimensions, operated by Orama Cloud
  • openai/text-embedding-ada-002. 1536 dimensions, proxied to OpenAI
  • openai/text-embedding-3-small. 1536 dimensions, proxied to OpenAI
  • openai/text-embedding-3-large. 3072 dimensions, proxied to OpenAI

Generating chat completions via the Secure Proxy

You can generate chat completions via the Secure Proxy in two different ways:

Returning a single string

import { OramaProxy } from "@oramacloud/client";

const proxy = new OramaClient({
  api_key: "<Your Orama Secure Proxy API Key>",
});

const chatParams = {
  model: "openai/gpt-4",
  messages: [{ role: "user", content: "Who is Michael Scott?" }],
};

const response = await proxy.chat(chatParams);
console.log(response);

// "Michael Scott is a fictional character from the television show "The Office" (US version) ..."

Available models:

  • openai/gpt-4-1106-preview
  • openai/gpt-4
  • openai/gpt-3.5-turbo
  • openai/gpt-3.5-turbo-16k

Returning a stream (via async iterators)

import { OramaProxy } from "@oramacloud/client";

const proxy = new OramaClient({
  api_key: "<Your Orama Secure Proxy API Key>",
});

const chatParams = {
  model: "openai/gpt-4",
  messages: [{ role: "user", content: "Who is Michael Scott?" }],
};

for await (const message of proxy.chatStream(chatParams)) {
  console.log(message);
}

// Michael
// Scott is
// a fictional
//  character from the
//  television show
// "The
// Office" (US
// version)
// ...

Available models:

  • openai/gpt-4-1106-preview
  • openai/gpt-4
  • openai/gpt-3.5-turbo
  • openai/gpt-3.5-turbo-16k

With React

import { OramaCloud, useSearch } from "@oramacloud/client/react";

export function App() {
  return (
    <OramaCloud
      endpoint="<Your Orama Cloud Endpoint>"
      apiKey="<Your Orama Cloud API Key>"
    >
      <Search />
    </OramaCloud>
  );
}

function Search() {
  const { results, error } = useSearch({
    term: "red leather shoes",
    limit: 10,
    offset: 5,
  });

  return (
    <>
      {results.hits.map((hit) => {
        <div key={hit.id}>
          <p> {hit.document.myCustomProperty} </p>
        </div>;
      })}
    </>
  );
}

With Vue

Import the composable into your component and it's ready to use.

<template>
  <li v-for="hit in results?.hits" :key="hit.id">
    {{ hit.id }}
  </li>
</template>

<script setup>
import { useSearch } from "@oramacloud/client/vue";
import { orama } from './orama'

const { results } = useSearch({
  cloudConfig: {
    apiKey: "<Your Orama Cloud API Key>",
    endpoint: "<Your Orama Cloud Endpoint>",
  },
  term: "guitar",
  limit: 5
});
</script>
1.1.5

12 days ago

1.1.4

12 days ago

1.1.3

13 days ago

1.1.2

15 days ago

1.1.1

18 days ago

1.1.0

18 days ago

1.0.14

1 month ago

1.0.13

1 month ago

1.0.12

1 month ago

1.0.11

2 months ago

1.0.10

2 months ago

1.0.9

3 months ago

1.0.8

3 months ago

1.0.7

3 months ago

1.0.6

3 months ago

1.0.5

3 months ago

1.0.4

4 months ago

1.0.3

4 months ago

1.0.2

4 months ago

1.0.1

4 months ago

1.0.0-beta.24

4 months ago

1.0.0

4 months ago

1.0.0-beta.23

5 months ago

1.0.0-beta.22

5 months ago

1.0.0-beta.2

11 months ago

1.0.0-beta.3

11 months ago

1.0.0-beta.4

11 months ago

1.0.0-beta.5

11 months ago

1.0.0-beta.11

10 months ago

1.0.0-beta.12

10 months ago

1.0.0-beta.20

8 months ago

1.0.0-beta.21

8 months ago

1.0.0-beta.10

10 months ago

1.0.0-beta.6

10 months ago

1.0.0-beta.7

10 months ago

1.0.0-beta.8

10 months ago

1.0.0-beta.9

10 months ago

1.0.0-beta.19

10 months ago

1.0.0-beta.17

10 months ago

1.0.0-beta.15

10 months ago

1.0.0-beta.16

10 months ago

1.0.0-beta.13

10 months ago

1.0.0-beta.14

10 months ago

1.0.0-beta.1

11 months ago