Run a single prompt and stream the result
Executes a single prompt using specified variables, with a streaming response.Examples
import os
from freeplay import Freeplay
from freeplay.provider_config import ProviderConfig, OpenAIConfig
FREEPLAY_API_KEY = os.environ["FREEPLAY_API_KEY"]
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
FREEPLAY_CUSTOMER_NAME = os.environ["FREEPLAY_CUSTOMER_NAME"]
FREEPLAY_PROJECT_ID = os.environ["FREEPLAY_PROJECT_ID"]
fp_client = Freeplay(
provider_config=ProviderConfig(openai=OpenAIConfig(OPENAI_API_KEY)),
freeplay_api_key=FREEPLAY_API_KEY,
api_base=f'https://{FREEPLAY_CUSTOMER_NAME}.freeplay.ai/api'
)
completion_stream = fp_client.get_completion_stream(
project_id=FREEPLAY_PROJECT_ID,
template_name="album_bot",
variables={"pop_star": "Bruno Mars"}
)
for chunk in completion_stream:
print("Chunk: %s" % chunk.text.strip())
import * as freeplay from "freeplay";
async function main() {
const FREEPLAY_API_KEY = process.env["FREEPLAY_API_KEY"]
const OPENAI_API_KEY = process.env["OPENAI_API_KEY"]
const FREEPLAY_CUSTOMER_NAME = process.env["FREEPLAY_CUSTOMER_NAME"]
const FREEPLAY_PROJECT_ID = process.env["FREEPLAY_PROJECT_ID"]
const fp_client = new freeplay.Freeplay({
freeplayApiKey: FREEPLAY_API_KEY,
baseUrl: `https://${FREEPLAY_CUSTOMER_NAME}.freeplay.ai/api`,
providerConfig: {
openai: {
apiKey: OPENAI_API_KEY
}
}
})
const completionStream = await fp_client.getCompletionStream({
projectId: FREEPLAY_PROJECT_ID,
templateName: "album_bot",
variables: {
["pop_star"]: "Bruno Mars"
}
})
for await (const chunk of completionStream) {
if (chunk.choices[0].role) {
process.stdout.write(`${chunk.choices[0].role} message: `);
}
process.stdout.write(chunk.content);
}
console.log('\n')
}
main();
package ai.freeplay.example.java;
import ai.freeplay.client.Freeplay;
import ai.freeplay.client.ProviderConfig.OpenAIProviderConfig;
import ai.freeplay.client.model.ChatMessage;
import ai.freeplay.client.model.CompletionResponse;
import ai.freeplay.client.model.CompletionSession;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Stream;
import static java.lang.String.format;
public class StreamingExample {
public static void main(String[] args) {
String openaiApiKey = System.getenv("OPENAI_API_KEY");
String freeplayApiKey = System.getenv("FREEPLAY_API_KEY");
String projectId = System.getenv("FREEPLAY_PROJECT_ID");
String customerDomain = System.getenv("FREEPLAY_CUSTOMER_NAME");
String baseUrl = format("https://%s.freeplay.ai/api", customerDomain);
Freeplay fpClient = new Freeplay(freeplayApiKey, baseUrl, new OpenAIProviderConfig(openaiApiKey));
Map<String, Object> llmParameters = Collections.emptyMap();
CompletionSession session = fpClient.createSession(projectId, "prod");
Stream<ChatMessage> completionStream = session.getCompletionStream(
"my-chat-start",
Map.of("question", "why isn't my sink working?"),
llmParameters,
null,
null
);
completionStream.forEach((ChatMessage chunk) -> {
System.out.printf("Message [%s]: %s%n", chunk.getRole(), chunk.getContent());
});
Stream<CompletionResponse> textStream = session.getCompletionStream(
"my-prompt",
Map.of("question", "why isn't my sink working?"),
llmParameters,
null,
null
);
textStream.forEach((CompletionResponse chunk) -> {
System.out.printf("Message [TEXT]: %s%n", chunk.getContent());
});
}
}

