llama-index llms llama api integration
Project description
LlamaIndex Llms Integration: Llama Api
Prerequisites
- API Key: Obtain an API key from Llama API.
- Python 3.x: Ensure you have Python installed on your system.
Installation
-
Install the required Python packages:
%pip install llama-index-program-openai %pip install llama-index-llms-llama-api !pip install llama-index
Basic Usage
Import Required Libraries
from llama_index.llms.llama_api import LlamaAPI
from llama_index.core.llms import ChatMessage
Initialize LlamaAPI
Set up the API key:
api_key = "LL-your-key"
llm = LlamaAPI(api_key=api_key)
Complete with a Prompt
Generate a response using a prompt:
resp = llm.complete("Paul Graham is ")
print(resp)
Chat with a List of Messages
Interact with the model using a chat interface:
messages = [
ChatMessage(
role="system", content="You are a pirate with a colorful personality"
),
ChatMessage(role="user", content="What is your name"),
]
resp = llm.chat(messages)
print(resp)
Function Calling
Define a function using Pydantic and call it through LlamaAPI:
from pydantic import BaseModel
from llama_index.core.llms.openai_utils import to_openai_function
class Song(BaseModel):
"""A song with name and artist"""
name: str
artist: str
song_fn = to_openai_function(Song)
response = llm.complete("Generate a song", functions=[song_fn])
function_call = response.additional_kwargs["function_call"]
print(function_call)
Structured Data Extraction
Define schemas for structured output using Pydantic:
from pydantic import BaseModel
from typing import List
class Song(BaseModel):
"""Data model for a song."""
title: str
length_mins: int
class Album(BaseModel):
"""Data model for an album."""
name: str
artist: str
songs: List[Song]
Define the prompt template for extracting structured data:
from llama_index.program.openai import OpenAIPydanticProgram
prompt_template_str = """\
Extract album and songs from the text provided.
For each song, make sure to specify the title and the length_mins.
{text}
"""
llm = LlamaAPI(api_key=api_key, temperature=0.0)
program = OpenAIPydanticProgram.from_defaults(
output_cls=Album,
llm=llm,
prompt_template_str=prompt_template_str,
verbose=True,
)
Run Program to Get Structured Output
Execute the program to extract structured data from the provided text:
output = program(
text="""
"Echoes of Eternity" is a compelling and thought-provoking album, skillfully crafted by the renowned artist, Seraphina Rivers. \
This captivating musical collection takes listeners on an introspective journey, delving into the depths of the human experience \
and the vastness of the universe. With her mesmerizing vocals and poignant songwriting, Seraphina Rivers infuses each track with \
raw emotion and a sense of cosmic wonder. The album features several standout songs, including the hauntingly beautiful "Stardust \
Serenade," a celestial ballad that lasts for six minutes, carrying listeners through a celestial dreamscape. "Eclipse of the Soul" \
captivates with its enchanting melodies and spans over eight minutes, inviting introspection and contemplation. Another gem, "Infinity \
Embrace," unfolds like a cosmic odyssey, lasting nearly ten minutes, drawing listeners deeper into its ethereal atmosphere. "Echoes of Eternity" \
is a masterful testament to Seraphina Rivers' artistic prowess, leaving an enduring impact on all who embark on this musical voyage through \
time and space.
"""
)
Output Example
You can print the structured output like this:
print(output)
LLM Implementation example
https://docs.llamaindex.ai/en/stable/examples/llm/llama_api/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for llama_index_llms_llama_api-0.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 701e7d490482eba818646de84ec78b856d885a8ee38110a0d6c0e6cb24c58569 |
|
MD5 | 4276639a851d31305966f2fb0a749c9e |
|
BLAKE2b-256 | 4e87d061bbf6ae0110f564d241dcea86a027d60584917befb9d97d5b5d2d9193 |
Close
Hashes for llama_index_llms_llama_api-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 878cd8914cec6a0ec5c4946273b55a509434af0d717a9f0c94b5a4604337bf67 |
|
MD5 | cbfe3d6d316264ce9eea58fcd754f4f9 |
|
BLAKE2b-256 | ed3d51e6186e9b65dae68cefe763719a96c4066cfb8010e0a0de8ced26562901 |