النظام البيئي المتكامل لأدوات الذكاء الاصطناعي | أصلي، ترجم بواسطة AI

Home 2025.02

جدول المحتويات

  1. Jina AI
    • سكريبت بايثون لدمج Jina AI
    • جلب محتوى URL باستخدام r.jina.ai
    • معالجة استعلامات البحث باستخدام s.jina.ai
    • ترميز Base64 والمصادقة على API
  2. Tavily AI
    • واجهة برمجة تطبيقات البحث بالذكاء الاصطناعي المخصصة لتطبيقات LLM
    • الإعداد وتسجيل مفتاح API
    • تنفيذ عميل بايثون
    • أمثلة طلبات البحث والاستخدام
  3. Open WebUI
    • تثبيت واجهة الذكاء الاصطناعي المحلية
    • إعداد الخادم والتكوين
    • تكامل Ollama للنماذج المحلية
    • وقت التثبيت والمتطلبات
  4. Tableau وScale وPower BI
    • مقارنة منصات ذكاء الأعمال
    • تجربة النسخة التجريبية لـ Tableau لمدة 13 يومًا
    • نظرة عامة على منصة Scale للبيانات
    • ميزات Microsoft Power BI
  5. استخدام OpenRouter
    • قبول بطاقات فيزا الصينية
    • تحليل تصنيفات النماذج والاتجاهات
    • فئات استخدام LLM والتطبيقات
    • متطلبات VPN في هونغ كونغ للوصول إلى واجهة برمجة تطبيقات Anthropic
  6. ElevenLabs AI
    • تكامل واجهة برمجة تطبيقات تحويل النص إلى كلام
    • قدرات استنساخ الصوت
    • إنشاء صوتيات متعددة اللغات
    • سكريبت بايثون لتحويل الصوت

Jina AI

يتفاعل هذا السكريبت البايثوني مع خدمات Jina AI باستخدام مفاتيح API ووسائط سطر الأوامر. وهو يدعم وظيفتين رئيسيتين: جلب المحتوى من 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 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 هو واجهة برمجة تطبيقات بحث بالذكاء الاصطناعي مصممة خصيصًا لتطبيقات LLM. يوفر نتائج بحث ذات صلة عالية من خلال دمج البحث على الويب مع معالجة الذكاء الاصطناعي.

لاستخدام Tavily، ستحتاج إلى:

  1. التسجيل للحصول على مفتاح API في tavily.com
  2. تثبيت حزمة بايثون.
import os
from tavily import TavilyClient

# استرجاع مفتاح API من متغير البيئة
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.")

# تهيئة TavilyClient بالمفتاح المسترجع
tavily_client = TavilyClient(api_key=TAVILY_API_KEY)

# تنفيذ طلب بحث
response = tavily_client.search("Who is Leo Messi?")

# طباعة الرد
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 environment variable not set.")

parser = argparse.ArgumentParser()
parser.add_argument("--file", type=str, help="Markdown file to convert to speech", required=False)
parser.add_argument("--text", type=str, help="Text to convert to speech", required=False)
parser.add_argument("--output", type=str, help="Output file name", required=True)
parser.add_argument("--voice_id", type=str, default="21m00Tcm4TlvDq8iK2G8", help="Voice ID to use")

args = parser.parse_args()

if args.file:
    try:
        with open(args.file, 'r') as f:
            content = f.read()
            # إزالة front matter
            content = re.sub(r'---.*?---', '', content, flags=re.DOTALL)
            text = content.strip()
    except FileNotFoundError:
        print(f"Error: File not found: {args.file}")
        exit(1)
    except Exception as e:
        print(f"Error reading file: {e}")
        exit(1)
elif args.text:
    text = args.text
else:
    print("Error: Either --file or --text must be specified.")
    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 saved to {args.output}")
else:
    print(f"Error: {response.status_code} - {response.text}")


Back Donate