OEvortex/llm4free
GitHub: OEvortex/llm4free
一款整合了 40 多个免费 AI 提供商、多引擎搜索及多种数字工具的 Python 综合工具包,旨在为零成本接入大语言模型和日常开发提供统一接口。
Stars: 344 | Forks: 65
LLM4Free
前身为 WebScout —— 您的一站式 Python 工具包,涵盖网络搜索、AI 交互、数字工具等
通过一个统一的库,访问多样化的搜索引擎、前沿的 AI 模型、临时通信工具、媒体实用程序、开发者助手以及强大的 CLI 接口。
## 目录 - [功能](#features) - [安装说明](#installation) - [快速开始](#quick-start) - [CLI](#command-line-interface) - [AI 聊天提供商](#ai-chat-providers) - [搜索引擎](#search-engines) - [文生图](#text-to-image) - [文生语音](#text-to-speech) - [兼容 OpenAI 的 API 服务器](#openai-compatible-api-server) - [Python 客户端](#python-client) - [工具调用](#tool-calling) - [模型注册表](#model-registry) - [开发者工具](#developer-tools) - [文档](#documentation) - [贡献指南](#contributing) - [许可证](#license)
## 功能 ### 搜索与 AI - **多引擎搜索** —— DuckDuckGo, Bing, Brave, Yahoo, Mojeek, Wikipedia。([搜索文档](docs/search.md)) - **40 多个 AI 提供商** —— 全部兼容 OpenAI,轻松切换。([架构](docs/architecture.md)) - **AI 驱动的搜索** —— Perplexity, IAsk, Monica, AyeSoul, WebPilotAI。 - **兼容 OpenAI 的 API 服务器** —— 通过 OpenAI endpoint 提供任何 LLM4Free 提供商的服务。([服务器文档](docs/openai-api-server.md)) - **统一的 Python 客户端** —— 支持自动故障转移的聊天和图像生成。([客户端文档](docs/client.md)) ### 媒体与内容 - **文生图** —— PollinationsAI, Together, Miragic, MagicStudio。([TTI 文档](docs/getting-started.md#image-generation)) - **文生语音** —— ElevenLabs, Deepgram, OpenAI FM, Parler, Qwen, MurfAI 等。([模型注册表](docs/models.md)) - **语音转文本** —— ElevenLabs STT。 - **YouTube 工具包** —— 视频下载、转录、API 访问。([文档](docs/gitapi.md)) - **天气工具** —— 带有 ASCII 显示的详细天气信息。([天气文档](docs/weather.md)) ### 开发者工具 - **SwiftCLI** —— 优雅的 CLI 框架。([SwiftCLI 文档](docs/swiftcli.md)) - **Scout** —— HTML 解析器和网络爬虫。([Scout 文档](docs/scout.md)) - **LitPrinter** —— 带样式的控制台输出。([LitPrinter 文档](docs/litprinter.md)) - **LitAgent** —— User-agent 轮换和 IP 工具包。([LitAgent 文档](docs/litagent.md)) - **GitAPI** —— 无需验证的 GitHub 数据提取。([GitAPI 文档](docs/gitapi.md)) - **GGUF 转换** —— 将 HuggingFace 模型量化为 GGUF。([GGUF 文档](docs/gguf.md)) - **ZeroArt** —— 零依赖的 ASCII 艺术生成器。([ZeroArt 文档](docs/zeroart.md)) - **实用装饰器** —— `@timeIt` 和 `@retry` 助手。([装饰器文档](docs/decorators.md)) - **流清理** —— SSE/HTTP 流处理。([清理文档](docs/sanitize.md)) ### 隐私与实用程序 - **临时邮件** —— 通过 Emailnator, MailTM, TempMailIO 实现一次性邮件。 - **代理管理器** —— 自动代理轮换。([架构](docs/architecture.md)) - **精选 Prompts** —— 为 AI 角色精选的系统 prompt。([Prompts 文档](docs/awesome-prompts.md))
## 安装说明 ### pip (标准) ``` pip install -U llm4free # 支持 API server pip install -U "llm4free[api]" # 附带开发工具 pip install -U "llm4free[dev]" ``` ### uv (推荐) ``` uv add llm4free # 免安装运行 uv run llm4free --help # 安装为 global tool uv tool install llm4free ``` ### Docker ``` docker pull OEvortex/llm4free:latest docker run -it OEvortex/llm4free:latest ``` 有关完整的 Docker 部署选项(包括 compose profiles),请参阅 [docs/DOCKER.md](docs/DOCKER.md)。
## 快速开始 ### AI 聊天 (无需 API Key) ``` from llm4free.Provider.Openai_comp.heckai import HeckAI client = HeckAI() response = client.chat.completions.create( model="google/gemini-2.5-flash-preview", messages=[{"role": "user", "content": "Explain quantum computing in simple terms"}], ) print(response.choices[0].message.content) ``` ### 网络搜索 ``` from llm4free import DuckDuckGoSearch search = DuckDuckGoSearch() results = search.text("best practices for API design", max_results=5) for result in results: print(f"{result['title']}: {result['href']}") ``` ### 图像生成 ``` from llm4free.Provider.TTI import PollinationsAI gen = PollinationsAI() path = gen.generate_image(prompt="A serene mountain landscape at sunset") print(f"Saved to: {path}") ``` 完整的快速入门指南请参阅 [docs/getting-started.md](docs/getting-started.md)。
## 命令行界面 LLM4Free 提供了一个由 [Rich](https://github.com/Textualize/rich) 驱动的功能丰富的 CLI,并支持多引擎。 ``` llm4free --help # List all commands llm4free version # Show version llm4free text -k "python programming" # DuckDuckGo search (default) llm4free images -k "mountains" # Image search llm4free news -k "AI breakthrough" -t w # News from last week llm4free weather -l "New York" # Weather info llm4free translate -k "Hola" --to en # Translation ``` ### 支持的引擎 | 类别 | 引擎 | | ------------ | -------------------------------------------------------------- | | `text` | `ddg`, `bing`, `brave`, `yahoo`, `mojeek`, `wikipedia` | | `images` | `ddg`, `bing`, `brave`, `yahoo` | | `videos` | `ddg`, `brave`, `yahoo` | | `news` | `ddg`, `bing`, `brave`, `yahoo` | | `suggestions`| `ddg`, `bing`, `brave`, `yahoo` | | `weather` | `ddg`, `yahoo` | | `answers` | `ddg` | | `translate` | `ddg` | | `maps` | `ddg` | ``` # 使用特定 engine llm4free text -k "climate change" -e bing llm4free text -k "quantum physics" -e wikipedia ``` 完整的 CLI 参考:[docs/cli.md](docs/cli.md)
## AI 聊天提供商 所有提供商均使用 **兼容 OpenAI 的接口** (`client.chat.completions.create(...)`)。 ### 免费提供商 (无需身份验证) ``` from llm4free.Provider.Openai_comp.heckai import HeckAI from llm4free.Provider.Openai_comp.artingai import ArtingAI from llm4free.Provider.Openai_comp.freeai import FreeAI # HeckAI - 多模型 client = HeckAI() response = client.chat.completions.create( model="google/gemini-2.5-flash-preview", messages=[{"role": "user", "content": "Hello!"}], ) print(response.choices[0].message.content) # ArtingAI client = ArtingAI() response = client.chat.completions.create( model="gpt-5", messages=[{"role": "user", "content": "Hello!"}], ) ``` ### 经过身份验证的提供商 ``` from llm4free.Provider.Openai_comp.Auth.groq import Groq from llm4free.Provider.Openai_comp.Auth.deepinfra import DeepInfra groq = Groq(api_key="your-key") response = groq.chat.completions.create( model="llama-3.3-70b-versatile", messages=[{"role": "user", "content": "Write a Python function to sort a list"}], ) print(response.choices[0].message.content) ``` ### 流式传输 ``` from llm4free.Provider.Openai_comp.heckai import HeckAI client = HeckAI() stream = client.chat.completions.create( model="google/gemini-2.5-flash-preview", messages=[{"role": "user", "content": "Tell me a joke"}], stream=True, ) for chunk in stream: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="") ``` 有关所有可用的提供商实现,请参阅 [llm4free/llm/](llm4free/llm/)。
## 搜索引擎 ``` from llm4free import DuckDuckGoSearch, BingSearch, YahooSearch, BraveSearch # DuckDuckGo ddg = DuckDuckGoSearch() results = ddg.text("python frameworks", max_results=5) # Bing bing = BingSearch() results = bing.text("climate change solutions") # Brave brave = BraveSearch() results = brave.text("machine learning tutorials") ``` 搜索文档:[docs/search.md](docs/search.md)
## 文生图 ``` from llm4free.Provider.TTI import PollinationsAI, TogetherImage # PollinationsAI poll = PollinationsAI() poll.generate_image(prompt="A cyberpunk city at night") # Together AI together = TogetherImage() together.generate_image(prompt="A robot playing chess") ``` TTI 文档:[docs/getting-started.md#image-generation](docs/getting-started.md#image-generation)
## 文生语音 ``` from llm4free.Provider.TTS import ElevenlabsTTS, ParlerTTS tts = ElevenlabsTTS() tts.text_to_speech("Hello, world!", voice="alloy") ``` TTS 模型注册表:[docs/models.md](docs/models.md)
## 兼容 OpenAI 的 API 服务器 运行一个本地的 FastAPI 服务器,通过标准的 OpenAI endpoint 提供任何 LLM4Free 提供商的服务。 ``` # 启动 server llm4free-server # 自定义 config llm4free-server --port 8080 --host 0.0.0.0 --debug ``` ### 与 OpenAI Python 客户端一起使用 ``` from openai import OpenAI client = OpenAI(api_key="dummy", base_url="http://localhost:8000/v1") response = client.chat.completions.create( model="ChatGPT/gpt-4o", messages=[{"role": "user", "content": "Hello!"}] ) print(response.choices[0].message.content) ``` ### Docker 部署 ``` docker-compose up llm4free-api docker-compose -f docker-compose.yml -f docker-compose.no-auth.yml up llm4free-api ``` 完整的服务器文档:[docs/openai-api-server.md](docs/openai-api-server.md) | Docker:[docs/DOCKER.md](docs/DOCKER.md)
## Python 客户端 统一的 `Client` 类支持跨提供商的自动故障转移,并具有智能模型解析功能。 ``` from llm4free.client import Client client = Client(print_provider_info=True) # 自动 provider + model 选择 resp = client.chat.completions.create( model="auto", messages=[{"role": "user", "content": "Summarize LLM4Free."}] ) print(resp.choices[0].message.content) # 流式传输 stream = client.chat.completions.create( model="ChatGPT/gpt-4o-mini", messages=[{"role": "user", "content": "Write a limerick about Python."}], stream=True, ) for chunk in stream: delta = chunk.choices[0].delta.content if delta: print(delta, end="", flush=True) # 图像生成 img = client.images.generate(prompt="A neon owl", model="auto", size="1024x1024") print(img.data[0].url) ``` 客户端文档:[docs/client.md](docs/client.md)
## 工具调用 LLM4Free 内置了可与任何提供商配合使用的工具调用系统。 ``` from llm4free.Provider.Openai_comp.heckai import HeckAI from llm4free.Provider.Openai_comp.base import Tool def get_weather(city: str) -> str: return f"Weather in {city}: Sunny, 25C" weather_tool = Tool( name="get_weather", description="Get current weather for a city.", parameters={"city": {"type": "string", "description": "City name."}}, implementation=get_weather, ) client = HeckAI(tools=[weather_tool]) response = client.chat.completions.create( model="google/gemini-2.5-flash-preview", messages=[{"role": "user", "content": "What is the weather in London?"}], ) print(response.choices[0].message.content) ``` 工具调用文档:[docs/tool-calling.md](docs/tool-calling.md)
## 模型注册表 枚举所有提供商中的可用模型。 ``` from llm4free import model # 所有 LLM 模型 all_models = model.llm.list() print(f"Total: {len(all_models)}") # 按 provider 分类的模型 summary = model.llm.summary() for provider, count in summary.items(): print(f" {provider}: {count}") # TTS 语音 voices = model.tts.list() print(f"Total voices: {len(voices)}") ``` 模型注册表文档:[docs/models.md](docs/models.md)
## 开发者工具 | 工具 | 描述 | 文档 | |------|-------------|------| | [SwiftCLI](docs/swiftcli.md) | 带有装饰器的 CLI 框架 | [docs/swiftcli.md](docs/swiftcli.md) | | [Scout](docs/scout.md) | HTML 解析器和网络爬虫 | [docs/scout.md](docs/scout.md) | | [LitPrinter](docs/litprinter.md) | 带样式的调试打印 | [docs/litprinter.md](docs/litprinter.md) | | [LitAgent](docs/litagent.md) | User-agent 轮换 | [docs/litagent.md](docs/litagent.md) | | [GitAPI](docs/gitapi.md) | GitHub 数据提取 | [docs/gitapi.md](docs/gitapi.md) | | [GGUF](docs/gguf.md) | 模型转换和量化 | [docs/gguf.md](docs/gguf.md) | | [ZeroArt](docs/zeroart.md) | ASCII 艺术生成器 | [docs/zeroart.md](docs/zeroart.md) | | [Weather](docs/weather.md) | 天气工具包 | [docs/weather.md](docs/weather.md) | | [Decorators](docs/decorators.md) | `@timeIt` 和 `@retry` | [docs/decorators.md](docs/decorators.md) | | [Sanitize](docs/sanitize.md) | 流清理 | [docs/sanitize.md](docs/sanitize.md) | | [Prompts](docs/awesome-prompts.md) | 系统 prompt 管理器 | [docs/awesome-prompts.md](docs/awesome-prompts.md) |
## 文档 | 资源 | 描述 | |----------|-------------| | [快速开始](docs/getting-started.md) | 安装、首次聊天、网络搜索、图像生成 | | [架构](docs/architecture.md) | 系统设计、层次结构和数据流 | | [CLI 参考](docs/cli.md) | 所有 CLI 命令和选项 | | [Python 客户端](docs/client.md) | 支持自动故障转移的统一客户端 | | [API 服务器](docs/openai-api-server.md) | 兼容 OpenAI 的 FastAPI 服务器 | | [模型注册表](docs/models.md) | 枚举 LLM、TTS、TTI 模型 | | [工具调用](docs/tool-calling.md) | 与任何提供商的函数调用 | | [搜索文档](docs/search.md) | 多引擎搜索 API | | [Scout](docs/scout.md) | HTML 解析器和网络爬虫 | | [提供商开发](docs/provider-development.md) | 创建自定义提供商 | | [部署](docs/deployment.md) | 生产环境部署指南 | | [Docker](docs/DOCKER.md) | Docker 设置和 compose profiles | | [Inferno](docs/inferno.md) | 本地 LLM 服务器 | | [故障排除](docs/troubleshooting.md) | 常见问题和解决方案 | | [贡献指南](docs/contributing.md) | 如何参与贡献 | | [提供商模块](llm4free/llm/) | 所有提供商实现 | | [文档中心](docs/README.md) | 完整的文档索引 |
## 贡献指南 请参阅 [docs/contributing.md](docs/contributing.md) 了解指南。 1. Fork 本仓库 2. 创建一个功能分支 3. 进行更改并附带描述性的 commit 4. 提交一个 pull request
## 许可证 Apache-2.0。请参阅 [LICENSE.md](LICENSE.md)。
由 LLM4Free 团队用心制作
标签:DLL 劫持, Python, 人工智能, 大语言模型, 开发工具包, 无后门, 用户模式Hook绕过, 请求拦截, 逆向工具