@aigne/poe
v1.1.3
Published
AIGNE Poe SDK for integrating with Poe's language models and API services
Downloads
13,085
Readme
@aigne/poe
AIGNE Poe SDK for integrating with Poe language models and API services within the AIGNE Framework.
Introduction
@aigne/poe provides a seamless integration between the AIGNE Framework and Poe's language models and API services. This package enables developers to easily leverage Poe's models in their AIGNE applications, providing a consistent interface across the framework while taking advantage of Poe's advanced AI capabilities.
Features
- Poe API Integration: Direct connection to Poe's API services
- Chat Completions: Support for Poe's chat completions API with all available models
- Function Calling: Built-in support for function calling capabilities
- Streaming Responses: Support for streaming responses for more responsive applications
- Type-Safe: Comprehensive TypeScript typings for all APIs and models
- Consistent Interface: Compatible with the AIGNE Framework's model interface
- Error Handling: Robust error handling and retry mechanisms
- Full Configuration: Extensive configuration options for fine-tuning behavior
Installation
Using npm
npm install @aigne/poe @aigne/coreUsing yarn
yarn add @aigne/poe @aigne/coreUsing pnpm
pnpm add @aigne/poe @aigne/coreBasic Usage
import { PoeChatModel } from "@aigne/poe";
const model = new PoeChatModel({
// Provide API key directly or use environment variable POE_API_KEY
apiKey: "your-api-key", // Optional if set in env variables
// Specify model (defaults to 'openai/gpt-4o')
model: "claude-3-opus",
modelOptions: {
temperature: 0.7,
},
});
const result = await model.invoke({
messages: [{ role: "user", content: "Which model are you using?" }],
});
console.log(result);
/* Output:
{
text: "I'm powered by Poe, using the Claude 3 Opus model from Anthropic.",
model: "claude-3-opus",
usage: {
inputTokens: 5,
outputTokens: 14
}
}
*/Streaming Responses
import { isAgentResponseDelta } from "@aigne/core";
import { PoeChatModel } from "@aigne/poe";
const model = new PoeChatModel({
apiKey: "your-api-key",
model: "claude-3-opus",
});
const stream = await model.invoke(
{
messages: [{ role: "user", content: "Which model are you using?" }],
},
{ streaming: true },
);
let fullText = "";
const json = {};
for await (const chunk of stream) {
if (isAgentResponseDelta(chunk)) {
const text = chunk.delta.text?.text;
if (text) fullText += text;
if (chunk.delta.json) Object.assign(json, chunk.delta.json);
}
}
console.log(fullText); // Output: "I'm powered by Poe, using the Claude 3 Opus model from Anthropic."
console.log(json); // { model: "anthropic/claude-3-opus", usage: { inputTokens: 5, outputTokens: 14 } }License
Elastic-2.0
