全面人工智能工具生态系统 | 原创,AI翻译

Home 2025.02

目录

  1. Jina AI
    • 用于Jina AI集成的Python脚本
    • 通过r.jina.ai获取URL内容
    • 使用s.jina.ai处理搜索查询
    • Base64编码与API认证
  2. Tavily AI
    • 专为LLM应用设计的AI搜索API
    • 设置与API密钥注册
    • Python客户端实现
    • 搜索请求示例及使用方式
  3. Open WebUI
    • 本地AI界面安装指南
    • 服务器设置与配置
    • 与Ollama本地模型的集成
    • 安装时间与系统要求
  4. Tableau、Scale与Power BI
    • 商业智能平台对比
    • Tableau 13天试用体验
    • Scale数据平台概览
    • Microsoft Power BI功能特点
  5. 使用OpenRouter
    • 支持中国发行的Visa信用卡
    • 模型排行榜与趋势分析
    • LLM应用场景分类
    • 香港用户访问Anthropic API需VPN
  6. ElevenLabs AI
    • 文本转语音API集成
    • 声音克隆功能
    • 多语言音频生成
    • 音频转换的Python脚本

Jina AI

该Python脚本通过API密钥和命令行参数与Jina AI服务交互,支持两大功能:获取URL内容和执行搜索查询。脚本从环境变量中读取Jina API密钥确保服务安全访问,使用requests库发起HTTP请求,base64解码搜索查询,并打印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环境变量。")

parser = argparse.ArgumentParser()
parser.add_argument("--job", type=str, choices=['url', 'search'], help="执行任务(url或search)", required=True)
parser.add_argument("--input", type=str, help="任务输入内容", 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}")
    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}")
    response = requests.get(url, headers=headers)
    print(response.text)

else:
    print("请指定--job参数为url或search")


Tavily AI

Tavily是专为LLM应用设计的AI搜索API,通过结合网络搜索与AI处理提供高相关性结果。

使用步骤:

  1. tavily.com注册获取API密钥
  2. 安装Python包
import os
from tavily import TavilyClient

TAVILY_API_KEY = os.getenv('TAVILY_API_KEY')

if TAVILY_API_KEY is None:
    raise ValueError("未找到API密钥。请设置TAVILY_API_KEY环境变量。")

tavily_client = TavilyClient(api_key=TAVILY_API_KEY)

response = tavily_client.search("梅西是谁?")

print(response)


Open WebUI


Tableau、Scale与Power BI

Tableau

https://tableau.com

注册后获知有13天试用期

来源:tableau.com

Scale

https://scale.com

来源:scale.com

Power BI

https://powerbi.microsoft.com


使用OpenRouter


ElevenLabs AI

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环境变量。")

parser = argparse.ArgumentParser()
parser.add_argument("--file", type=str, help="待转换的Markdown文件", required=False)
parser.add_argument("--text", type=str, help="待转换的文本", required=False)
parser.add_argument("--output", type=str, help="输出文件名", required=True)
parser.add_argument("--voice_id", type=str, default="21m00Tcm4TlvDq8iK2G8", help="使用的语音ID")

args = parser.parse_args()

if args.file:
    try:
        with open(args.file, 'r') as f:
            content = f.read()
            content = re.sub(r'---.*?---', '', content, flags=re.DOTALL)
            text = content.strip()
    except FileNotFoundError:
        print(f"错误:文件未找到 - {args.file}")
        exit(1)
    except Exception as e:
        print(f"读取文件出错:{e}")
        exit(1)
elif args.text:
    text = args.text
else:
    print("错误:必须指定--file或--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"音频已保存至 {args.output}")
else:
    print(f"错误:{response.status_code} - {response.text}")


Back Donate