Ecosistema Completo de Herramientas de IA | Original, traducido por IA
Tabla de Contenidos
- Jina AI
- Script de Python para Integración con Jina AI
- Obtención de Contenido de URL con
r.jina.ai
- Procesamiento de Consultas de Búsqueda con
s.jina.ai
- Codificación Base64 y Autenticación de API
- Tavily AI
- API de Búsqueda por IA Específica para Aplicaciones LLM
- Configuración y Registro de Clave API
- Implementación del Cliente de Python
- Ejemplos de Solicitudes de Búsqueda y Uso
- Open WebUI
- Instalación de Interfaz de IA Local
- Configuración y Preparación del Servidor
- Integración con Ollama para Modelos Locales
- Tiempo de Instalación y Requisitos
- Tableau, Scale y Power BI
- Comparación de Plataformas de Business Intelligence
- Experiencia de Prueba de 13 Días con Tableau
- Resumen de la Plataforma de Datos Scale
- Características de Microsoft Power BI
- Uso de OpenRouter
- Aceptación de Tarjetas Visa Emitidas en China
- Análisis de Clasificación y Tendencias de Modelos
- Categorías de Uso de LLM y Aplicaciones
- Requisitos de VPN en Hong Kong para API de Anthropic
- ElevenLabs AI
- Integración de API de Texto a Voz
- Capacidades de Clonación de Voz
- Generación de Audio en Múltiples Idiomas
- Script de Python para Conversión de Audio
Jina AI
Este script de Python interactúa con los servicios de Jina AI utilizando claves API y argumentos de línea de comandos. Soporta dos tareas principales: obtener contenido de una URL y realizar una consulta de búsqueda. El script recupera la clave API de Jina de las variables de entorno, asegurando un acceso seguro a los servicios. Utiliza la librería requests
para realizar solicitudes HTTP y base64
para decodificar la consulta de búsqueda. Luego, imprime la respuesta del servicio de Jina AI.
import os
import requests
from dotenv import load_dotenv
import argparse
import base64
load_dotenv()
api_key = os.environ.get("JINA_API_KEY")
if not api_key:
raise ValueError("JINA_API_KEY environment variable not set.")
parser = argparse.ArgumentParser()
parser.add_argument("--job", type=str, choices=['url', 'search'], help="Job to execute (url or search)", required=True)
parser.add_argument("--input", type=str, help="Input for the job", required=True)
args = parser.parse_args()
if args.job == 'url':
url = f'https://r.jina.ai/{args.input}'
headers = {'Authorization': f'Bearer {api_key}'}
print(f"URL: {url}")
print(f"Headers: {headers}")
response = requests.get(url, headers=headers)
print(response.text)
elif args.job == 'search':
question = base64.b64decode(args.input).decode('utf-8', errors='ignore')
url = f'https://s.jina.ai/{question}'
headers = {
'Authorization': f'Bearer {api_key}',
'X-Engine': 'direct',
'X-Retain-Images': 'none'
}
print(f"URL: {url}")
print(f"Headers: {headers}")
response = requests.get(url, headers=headers)
print(response.text)
else:
print("Please specify --job url or --job search")
Tavily AI
Tavily es una API de búsqueda por IA diseñada específicamente para aplicaciones LLM. Proporciona resultados de búsqueda altamente relevantes al combinar búsqueda web con procesamiento por IA.
Para usar Tavily, necesitarás:
- Registrarte para obtener una clave API en tavily.com
- Instalar el paquete de Python.
import os
from tavily import TavilyClient
# Recuperar la clave API de la variable de entorno
TAVILY_API_KEY = os.getenv('TAVILY_API_KEY')
if TAVILY_API_KEY is None:
raise ValueError("API key not found. Please set the TAVILY_API_KEY environment variable.")
# Inicializar el TavilyClient con la clave API recuperada
tavily_client = TavilyClient(api_key=TAVILY_API_KEY)
# Realizar una solicitud de búsqueda
response = tavily_client.search("¿Quién es Leo Messi?")
# Imprimir la respuesta
print(response)
Open WebUI
-
Open WebUI es una gran herramienta.
-
Para iniciar el servidor, ejecuta estos comandos:
pip install open-webui
yopen-webui serve
. -
El proceso de instalación puede tomar algún tiempo (aproximadamente 10 minutos o más).
-
Open WebUI funciona bien con Ollama.
Tableau, Scale y Power BI
Tableau
Después de registrarme, me informaron que tengo 13 días para probar el servicio.
fuente: tableau.com
Scale
fuente: scale.com
Power BI
Uso de OpenRouter
-
Se aceptan tarjetas de crédito Visa emitidas en China.
-
La página de Clasificaciones es interesante para ver los modelos más populares y en tendencia.
-
Puedes ver cómo las personas usan modelos LLM en categorías como Roleplay, Programación, Marketing, Marketing/SEO y Tecnología.
-
Para usuarios en Hong Kong, aún se requiere un VPN para acceder a la API de Anthropic.
ElevenLabs AI
-
Genial. Usé $5 USD para probar el servicio.
-
La clonación de voz es excelente.
-
Muestras de audio a continuación:
import os
import requests
from dotenv import load_dotenv
import argparse
import re
load_dotenv()
api_key = os.environ.get("ELEVENLABS_API_KEY")
if not api_key:
raise ValueError("ELEVENLABS_API_KEY environment variable not set.")
parser = argparse.ArgumentParser()
parser.add_argument("--file", type=str, help="Archivo Markdown para convertir a voz", required=False)
parser.add_argument("--text", type=str, help="Texto para convertir a voz", required=False)
parser.add_argument("--output", type=str, help="Nombre del archivo de salida", required=True)
parser.add_argument("--voice_id", type=str, default="21m00Tcm4TlvDq8iK2G8", help="ID de voz a usar")
args = parser.parse_args()
if args.file:
try:
with open(args.file, 'r') as f:
content = f.read()
# Eliminar front matter
content = re.sub(r'---.*?---', '', content, flags=re.DOTALL)
text = content.strip()
except FileNotFoundError:
print(f"Error: Archivo no encontrado: {args.file}")
exit(1)
except Exception as e:
print(f"Error al leer el archivo: {e}")
exit(1)
elif args.text:
text = args.text
else:
print("Error: Se debe especificar --file o --text.")
exit(1)
url = f"https://api.elevenlabs.io/v1/text-to-speech/{args.voice_id}"
headers = {
"Accept": "audio/mpeg",
"Content-Type": "application/json",
"xi-api-key": api_key
}
data = {
"text": text,
"model_id": "eleven_flash_v2_5",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 0.5
}
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
with open(args.output, 'wb') as f:
f.write(response.content)
print(f"Audio guardado en {args.output}")
else:
print(f"Error: {response.status_code} - {response.text}")