Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@oramacloud/client
Advanced tools
npm i @oramacloud/client
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",
});
const results = await client.search({
term: "red leather shoes",
where: {
price: {
lte: 9.99,
},
gender: "unisex",
},
limit: 5,
offset: 1,
});
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 Cloudorama/gte-large
. 1024 dimensions, operated by Orama Cloudopenai/text-embedding-ada-002
. 1536 dimensions, proxied to OpenAIopenai/text-embedding-3-small
. 1536 dimensions, proxied to OpenAIopenai/text-embedding-3-large
. 3072 dimensions, proxied to OpenAIYou can generate chat completions via the Secure Proxy in two different ways:
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
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
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>;
})}
</>
);
}
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>
.identify()
method with the user's unique identifier..reset()
when users log out.Note: we suggest developers to always call .identify()
when users sign-up, log-in or when the user re-opens the application in a logged-in state.
Example or already logged in state:
import { OramaClient } from "@oramacloud/client";
const client = new OramaClient({
endpoint: "<Your Orama Cloud Endpoint>",
api_key: "<Your Orama Cloud API Key>",
});
client.identify("<Your unique User ID>");
client.search({
term: "red leather shoes",
});
Upon logging out:
client.reset();
.identify()
method with the user's unique identifier..reset()
when users log out.OramaClient will always generate a new userId upon initialization, so we suggest developers to call the .reset()
function even when users are not necessarily identified. This will ensure that the client is not associated with the previous user, thus preventing improper data association between sessions.
Aliases are employed to link multiple identifiers to a single user, enabling the tracking of anonymous users across different sessions. This is particularly beneficial for monitoring users who are not logged in or who access the platform from various devices.
import { OramaClient } from "@oramacloud/client";
const client = new OramaClient({
endpoint: "<Your Orama Cloud Endpoint>",
api_key: "<Your Orama Cloud API Key>",
});
// Sets the alias for the current user
client.alias("<Unique Alias ID>");
client.search({
term: "red leather shoes",
});
FAQs
Orama SDK client for Node.js, Deno, and Browsers
We found that @oramacloud/client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.