@camaratech/ai-client
v1.0.0
Published
Cliente JavaScript para integração com CamaraTech AI Service
Maintainers
Readme
@camaratech/ai-client
Cliente JavaScript/TypeScript para integração com CamaraTech AI Service.
Instalação
npm install @camaratech/ai-clientUso
Básico
import { AIClient } from '@camaratech/ai-client';
const client = new AIClient({
baseURL: 'https://ai.camaratech.com.br/api',
apiToken: 'seu-token-de-api',
domain: window.location.hostname, // deve corresponder ao domínio autorizado na unidade
});
// Gerar conteúdo
const response = await client.generate('Escreva um texto sobre IA');
if (response.success) {
console.log(response.data.content);
console.log('Tokens usados:', response.data.usage.total_tokens);
} else {
console.error('Erro:', response.error);
}Com opções
const response = await client.generate('Escreva um texto sobre IA', {
provider: 'claude',
model: 'claude-3-5-sonnet-20241022',
max_tokens: 4096,
temperature: 0.2,
});Com metadata
const response = await client.generate('Prompt aqui', {
metadata: {
context: 'proposition',
proposition_id: 123,
},
});API
new AIClient(config)
Cria uma nova instância do cliente.
Config:
baseURL(string, obrigatório): URL base da APIapiToken(string, obrigatório): Token de API da unidadedomain(string, obrigatório): Domínio autorizado configurado na unidadeunitToken(string, opcional): Token da unidadetimeout(number, opcional): Timeout em ms (padrão: 180000)
client.generate(prompt, options?)
Gera conteúdo usando IA.
Parâmetros:
prompt(string): Prompt completooptions(object, opcional):provider: 'claude' | 'grok' | 'openai'model: Nome do modelomax_tokens: Número máximo de tokenstemperature: Temperatura (0-2)metadata: Objeto com metadados
Retorna:
{
success: boolean;
data?: {
content: string;
usage: {
input_tokens: number;
output_tokens: number;
total_tokens: number;
cost: number | null;
};
};
error?: string;
code?: string;
}Exemplos
Vue 3 (Composition API)
import { ref } from 'vue';
import { AIClient } from '@camaratech/ai-client';
const client = new AIClient({
baseURL: process.env.VITE_AI_SERVICE_URL,
apiToken: process.env.VITE_AI_SERVICE_TOKEN,
});
const content = ref('');
const loading = ref(false);
const generateContent = async () => {
loading.value = true;
try {
const response = await client.generate('Seu prompt aqui');
if (response.success) {
content.value = response.data.content;
}
} catch (error) {
console.error(error);
} finally {
loading.value = false;
}
};React
import { useState } from 'react';
import { AIClient } from '@camaratech/ai-client';
const client = new AIClient({
baseURL: process.env.REACT_APP_AI_SERVICE_URL,
apiToken: process.env.REACT_APP_AI_SERVICE_TOKEN,
});
function MyComponent() {
const [content, setContent] = useState('');
const [loading, setLoading] = useState(false);
const generateContent = async () => {
setLoading(true);
try {
const response = await client.generate('Seu prompt aqui');
if (response.success) {
setContent(response.data.content);
}
} catch (error) {
console.error(error);
} finally {
setLoading(false);
}
};
return (
<div>
<button onClick={generateContent} disabled={loading}>
Gerar
</button>
{content && <p>{content}</p>}
</div>
);
}Desenvolvimento
npm install
npm run buildLicença
MIT
