Files
wehub-resource-sync a0c8464e58
Build Package / build (ubuntu-latest) (push) Failing after 1s
CodeQL / Analyze (python) (push) Failing after 1s
Core Typecheck / core-typecheck (push) Failing after 1s
Linting / lint (push) Failing after 1s
llama-dev tests / test-llama-dev (push) Failing after 1s
Publish Sub-Package to PyPI if Needed / publish_subpackage_if_needed (push) Has been skipped
Sync Docs to Developer Hub / sync-docs (push) Failing after 0s
Build Package / build (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:26:52 +08:00

304 lines
8.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "4ec7cd6e",
"metadata": {},
"source": [
"<a href=\"https://colab.research.google.com/github/run-llama/llama_index/blob/main/docs/examples/llm/predibase.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"id": "bf9f19f3",
"metadata": {},
"source": [
"# Predibase\n",
"\n",
"This notebook shows how you can use Predibase-hosted LLM's within Llamaindex. You can add [Predibase](https://predibase.com) to your existing Llamaindex worklow to: \n",
"1. Deploy and query pre-trained or custom open source LLMs without the hassle\n",
"2. Operationalize an end-to-end Retrieval Augmented Generation (RAG) system\n",
"3. Fine-tune your own LLM in just a few lines of code\n",
"\n",
"## Getting Started\n",
"1. Sign up for a free Predibase account [here](https://predibase.com/free-trial)\n",
"2. Create an Account\n",
"3. Go to Settings > My profile and Generate a new API Token."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "72d6eb5b",
"metadata": {},
"outputs": [],
"source": [
"%pip install llama-index-llms-predibase"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "79a726c5",
"metadata": {},
"outputs": [],
"source": [
"!pip install llama-index --quiet\n",
"!pip install predibase --quiet\n",
"!pip install sentence-transformers --quiet"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1c2b0d5d",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"os.environ[\"PREDIBASE_API_TOKEN\"] = \"{PREDIBASE_API_TOKEN}\"\n",
"from llama_index.llms.predibase import PredibaseLLM"
]
},
{
"cell_type": "markdown",
"id": "9a602a2a",
"metadata": {},
"source": [
"## Flow 1: Query Predibase LLM directly"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4baffaa2",
"metadata": {},
"outputs": [],
"source": [
"# Predibase-hosted fine-tuned adapter example\n",
"llm = PredibaseLLM(\n",
" model_name=\"mistral-7b\",\n",
" predibase_sdk_version=None, # optional parameter (defaults to the latest Predibase SDK version if omitted)\n",
" adapter_id=\"e2e_nlg\", # adapter_id is optional\n",
" adapter_version=1, # optional parameter (applies to Predibase only)\n",
" api_token=None, # optional parameter for accessing services hosting adapters (e.g., HuggingFace)\n",
" max_new_tokens=512,\n",
" temperature=0.3,\n",
")\n",
"# The `model_name` parameter is the Predibase \"serverless\" base_model ID\n",
"# (see https://docs.predibase.com/user-guide/inference/models for the catalog).\n",
"# You can also optionally specify a fine-tuned adapter that's hosted on Predibase or HuggingFace\n",
"# In the case of Predibase-hosted adapters, you must also specify the adapter_version"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "69713553",
"metadata": {},
"outputs": [],
"source": [
"# HuggingFace-hosted fine-tuned adapter example\n",
"llm = PredibaseLLM(\n",
" model_name=\"mistral-7b\",\n",
" predibase_sdk_version=None, # optional parameter (defaults to the latest Predibase SDK version if omitted)\n",
" adapter_id=\"predibase/e2e_nlg\", # adapter_id is optional\n",
" api_token=os.environ.get(\n",
" \"HUGGING_FACE_HUB_TOKEN\"\n",
" ), # optional parameter for accessing services hosting adapters (e.g., HuggingFace)\n",
" max_new_tokens=512,\n",
" temperature=0.3,\n",
")\n",
"# The `model_name` parameter is the Predibase \"serverless\" base_model ID\n",
"# (see https://docs.predibase.com/user-guide/inference/models for the catalog).\n",
"# You can also optionally specify a fine-tuned adapter that's hosted on Predibase or HuggingFace\n",
"# In the case of Predibase-hosted adapters, you can also specify the adapter_version (assumed latest if omitted)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e7039a65",
"metadata": {},
"outputs": [],
"source": [
"result = llm.complete(\"Can you recommend me a nice dry white wine?\")\n",
"print(result)"
]
},
{
"cell_type": "markdown",
"id": "1112e828",
"metadata": {},
"source": [
"## Flow 2: Retrieval Augmented Generation (RAG) with Predibase LLM"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cacff36a",
"metadata": {},
"outputs": [],
"source": [
"from llama_index.core import VectorStoreIndex, SimpleDirectoryReader\n",
"from llama_index.core.embeddings import resolve_embed_model\n",
"from llama_index.core.node_parser import SentenceSplitter"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "c8f6fef1",
"metadata": {},
"source": [
"#### Download Data"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "65930e7e",
"metadata": {},
"outputs": [],
"source": [
"!mkdir -p 'data/paul_graham/'\n",
"!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'"
]
},
{
"cell_type": "markdown",
"id": "1edd41d1",
"metadata": {},
"source": [
"### Load Documents"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c5941151",
"metadata": {},
"outputs": [],
"source": [
"documents = SimpleDirectoryReader(\"./data/paul_graham/\").load_data()"
]
},
{
"cell_type": "markdown",
"id": "7df4407f",
"metadata": {},
"source": [
"### Configure Predibase LLM"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3f67e975-3cb5-4ddc-98e8-eae7892315ca",
"metadata": {},
"outputs": [],
"source": [
"# Predibase-hosted fine-tuned adapter\n",
"llm = PredibaseLLM(\n",
" model_name=\"mistral-7b\",\n",
" predibase_sdk_version=None, # optional parameter (defaults to the latest Predibase SDK version if omitted)\n",
" adapter_id=\"e2e_nlg\", # adapter_id is optional\n",
" api_token=None, # optional parameter for accessing services hosting adapters (e.g., HuggingFace)\n",
" temperature=0.3,\n",
" context_window=1024,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4a44defc",
"metadata": {},
"outputs": [],
"source": [
"# HuggingFace-hosted fine-tuned adapter\n",
"llm = PredibaseLLM(\n",
" model_name=\"mistral-7b\",\n",
" predibase_sdk_version=None, # optional parameter (defaults to the latest Predibase SDK version if omitted)\n",
" adapter_id=\"predibase/e2e_nlg\", # adapter_id is optional\n",
" api_token=os.environ.get(\n",
" \"HUGGING_FACE_HUB_TOKEN\"\n",
" ), # optional parameter for accessing services hosting adapters (e.g., HuggingFace)\n",
" temperature=0.3,\n",
" context_window=1024,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b3d527b7-5110-4d9c-97df-3926d3db0772",
"metadata": {},
"outputs": [],
"source": [
"embed_model = resolve_embed_model(\"local:BAAI/bge-small-en-v1.5\")\n",
"splitter = SentenceSplitter(chunk_size=1024)"
]
},
{
"cell_type": "markdown",
"id": "7a131a8e",
"metadata": {},
"source": [
"### Setup and Query Index"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9b10269",
"metadata": {},
"outputs": [],
"source": [
"index = VectorStoreIndex.from_documents(\n",
" documents, transformations=[splitter], embed_model=embed_model\n",
")\n",
"query_engine = index.as_query_engine(llm=llm)\n",
"response = query_engine.query(\"What did the author do growing up?\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ac73eb65",
"metadata": {},
"outputs": [],
"source": [
"print(response)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3"
},
"vscode": {
"interpreter": {
"hash": "5ae9fa2777630f93d325d67fd0c37f7375ed1afcb20dd85f425eb8692a47ff3f"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}