Skip to main content
You can use LlamaIndex to interact with FriendliAI. This makes migration of existing applications already using LlamaIndex particularly easy.

How to Use

Before you start, ensure you’ve already obtained the API_KEY from the Friendli Suite > Personal Settings > API Keys.
pip install llama-index llama-index-llms-friendli

Instantiation

Now you can instantiate the model object and generate chat completions. The default model (i.e. zai-org/GLM-5.2) will be used if no model is specified.
import os
from llama_index.llms.friendli import Friendli

os.environ['API_KEY'] = "YOUR_API_KEY"

llm = Friendli(model="zai-org/GLM-5.2")

Chat Completion

Generate a response from a given conversation.
from llama_index.core.llms import ChatMessage, MessageRole

message = ChatMessage(role=MessageRole.USER, content="Tell me a joke.")
resp = llm.chat([message])

print(resp)
from llama_index.core.llms import ChatMessage, MessageRole

message = ChatMessage(role=MessageRole.USER, content="Tell me a joke.")
resp = llm.stream_chat([message])

for r in resp:
    print(r.delta, end="")
from llama_index.core.llms import ChatMessage, MessageRole

message = ChatMessage(role=MessageRole.USER, content="Tell me a joke.")
resp = await llm.achat([message])

print(resp)
from llama_index.core.llms import ChatMessage, MessageRole

message = ChatMessage(role=MessageRole.USER, content="Tell me a joke.")
resp = await llm.astream_chat([message])

async for r in resp:
    print(r.delta, end="")

Completion

Generate a response from a given prompt.
prompt = "Draft a cover letter for a role in software engineering."
resp = llm.complete(prompt)

print(resp)
prompt = "Draft a cover letter for a role in software engineering."
resp = llm.stream_complete(prompt)

for r in resp:
    print(r.delta, end="")
prompt = "Draft a cover letter for a role in software engineering."
resp = await llm.acomplete(prompt)

print(resp)
prompt = "Draft a cover letter for a role in software engineering."
resp = await llm.astream_complete(prompt)

async for r in resp:
    print(r.delta, end="")
Last modified on July 1, 2026