Web Analytics

proxyless-llm-websearch

⭐ 122 stars Persian by itshyao

🌐 زبان

🧠 موتور جستجوی وب LLM بدون نیاز به پراکسی

یک ابزار جستجوی وب LLM چندموتوره بدون نیاز به پراکسی، با قابلیت تحلیل محتوای URL و خزش صفحات وب، مبتنی بر LangGraph و LangGraph-MCP برای پیاده‌سازی زنجیره‌های عامل ماژولار. ویژه فراخوانی دانش خارجی توسط مدل‌های زبانی بزرگ، پشتیبانی از بازیابی و تحلیل صفحات با Playwright + Crawl4AI، پشتیبانی از همزمانی غیرهمزمان، قطعه‌بندی و بازچینی/فیلتر محتوا.

🚀 گزارش بروزرسانی‌ها

✨ مرور ویژگی‌ها

workflow

framework

⚡ شروع سریع

کلون کردن مخزن

git clone https://github.com/itshyao/proxyless-llm-websearch.git
cd proxyless-llm-websearch

نصب وابستگی‌ها

pip install -r requirements.txt
python -m playwright install

پیکربندی متغیرهای محیطی

# 百炼llm
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
OPENAI_API_KEY=sk-xxx
MODEL_NAME=qwen-plus-latest

百炼embedding

EMBEDDING_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 EMBEDDING_API_KEY=sk-xxx EMBEDDING_MODEL_NAME=text-embedding-v4

百炼reranker

RERANK_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 RERANK_API_KEY=sk-xxx RERANK_MODEL=gte-rerank-v2

Langgraph-Agent

#### دمو

python agent/demo.py

#### سرویس‌دهی API

python agent/api_serve.py

import requests

url = "http://localhost:8800/search"

data = { "question": "广州今日天气", "engine": "bing", "split": { "chunk_size": 512, "chunk_overlap": 128 }, "rerank": { "top_k": 5 } }

try: response = requests.post( url, json=data )

if response.status_code == 200: print("✅ 请求成功!") print("响应内容:", response.json()) else: print(f"❌ 请求失败,状态码:{response.status_code}") print("错误信息:", response.text)

except requests.exceptions.RequestException as e: print(f"⚠️ 请求异常:{str(e)}")

#### گریدیو

python agent/gradio_demo.py

gradio

gradio

#### docker

docker-compose -f docker-compose-ag.yml up -d --build

Langgrph-MCP

#### راه‌اندازی سرویس MCP

python mcp/websearch.py

#### دمو

python mcp/demo.py

#### سرویس‌دهی API

python mcp/api_serve.py

import requests

url = "http://localhost:8800/search"

data = { "question": "广州今日天气" }

try: response = requests.post( url, json=data )

if response.status_code == 200: print("✅ 请求成功!") print("响应内容:", response.json()) else: print(f"❌ 请求失败,状态码:{response.status_code}") print("错误信息:", response.text)

except requests.exceptions.RequestException as e: print(f"⚠️ 请求异常:{str(e)}")

#### داکر

docker-compose -f docker-compose-mcp.yml up -d --build

ماژول سفارشی

#### تقسیم‌بندی سفارشی

from typing import Optional, List

class YourSplitter: def __init__(self, text: str, chunk_size: int = 512, chunk_overlap: int = 128): self.text = text self.chunk_size = chunk_size self.chunk_overlap = chunk_overlap

def split_text(self, text: Optional[str] = None) -> List: # TODO: implement splitting logic return ["your chunk"]

#### بازچینش سفارشی

from typing import List, Union, Tuple

class YourReranker: async def get_reranked_documents( self, query: Union[str, List[str]], documents: List[str], ) -> Union[ Tuple[List[str]], Tuple[List[int]], ]: return ["your chunk"], ["chunk index"]

🔍 مقایسه با آزمون‌های جستجوی آنلاین

ما پروژه را با برخی از APIهای آنلاین رایج مقایسه کردیم و عملکرد آن را در مسائل پیچیده ارزیابی نمودیم.

🔥 مجموعه داده

🧑‍🏫 نتایج مقایسه

| موتور جستجو/سیستم | ✅ درست | ❌ نادرست | ⚠️ تا حدی درست | | ------------------ | ------- | -------- | -------------- | | آتش‌فشان فانژو | ۵.۰۰٪ | ۷۲.۲۱٪ | ۲۲.۷۹٪ | | بایلین | ۹.۸۵٪ | ۶۲.۷۹٪ | ۲۷.۳۵٪ | | ما | ۱۹.۸۵٪ | ۴۷.۹۴٪ | ۳۲.۰۶٪ |

🙏 سپاسگزاری

برخی قابلیت‌های این پروژه با حمایت و الهام از پروژه‌های متن‌باز زیر فراهم شده است، بدین وسیله تقدیر می‌نماییم:

--- Tranlated By Open Ai Tx | Last indexed: 2025-09-08 ---