{"id":13483073,"url":"https://github.com/fatwang2/search2ai","last_synced_at":"2026-03-15T02:36:30.939Z","repository":{"id":213030114,"uuid":"732849776","full_name":"fatwang2/search2ai","owner":"fatwang2","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T04:26:24.000Z","size":269,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2023-12-19T16:12:10.750Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fatwang2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-12-18T02:02:46.000Z","updated_at":"2024-03-18T19:46:33.442Z","dependencies_parsed_at":"2023-12-24T11:39:10.063Z","dependency_job_id":null,"html_url":"https://github.com/fatwang2/search2ai","commit_stats":null,"previous_names":["fatwang2/gpt_online","fatwang2/search2ai"],"tags_count":11,"template":null,"template_full_name":null,"purl":"pkg:github/fatwang2/search2ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatwang2%2Fsearch2ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatwang2%2Fsearch2ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatwang2%2Fsearch2ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatwang2%2Fsearch2ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fatwang2","download_url":"https://codeload.github.com/fatwang2/search2ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatwang2%2Fsearch2ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28017024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-25T02:00:05.988Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T17:01:08.040Z","updated_at":"2025-12-25T02:05:57.871Z","avatar_url":"https://github.com/fatwang2.png","language":null,"funding_links":["https://www.buymeacoffee.com/fatwang2"],"categories":["JavaScript","Langchain"],"sub_categories":[],"readme":"**简体中文** · [English](README-EN.md)\n\n## 用户交流\n\n[discord 频道](https://discord.gg/AKXYq32Bxc)\n\n## 友情赞助\n\n\u003ca href=\"https://www.buymeacoffee.com/fatwang2\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n# 版本更新\n- V0.2.6，20240425，支持 SearXNG 免费搜索服务，有损支持 Moonshot 流式模式\n- V0.2.5，20240425，为了解决隐私担忧，开源搜索接口部分的代码\n- V0.2.4，20240424，支持 Groq 的llama-3、mistral等模型，速度起飞\n- V0.2.3，20240423，Cloudflare Worker版本支持Azure OpenAI；支持授权码，可自定义用户的请求key\n- V0.2.2，20240420，支持 Moonshot 的非流式模式\n- V0.2.1，20240310，支持Google、Bing、Duckduckgo、Search1API新闻类搜索；支持通过环境变量MAX_RESULTS调整搜索结果数量；支持通过环境变量CRAWL_RESULTS调整希望深度搜索的数量\n- V0.2.0，20240310，优化openai.js，cloudflare worker版本，这次速度真的更快了！\n\n更多历史更新，请参见 [版本记录](https://github.com/fatwang2/search2ai/releases)\n\n# S2A\n\n让你的 大模型 API 支持联网，搜索、新闻、网页总结，已支持OpenAI、Gemini、Moonshot(非流式)，大模型会根据你的输入判断是否联网，不是每次都联网搜索，不需要安装任何插件，也不需要更换key，直接在你常用的三方客户端替换自定义地址即可，也支持自行部署，不会影响使用的其他功能，如画图、语音等\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cimg src=\"pictures/Opencatnews.png\" alt=\"效果示例\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"pictures/BotGem.png\" alt=\"效果示例\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cimg src=\"pictures/Lobehub.png\" alt=\"效果示例\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"pictures/url.png\" alt=\"效果示例\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n# 功能\n\n| 模型             | 功能                 | 流式输出     | 部署方式                                    |\n| ---------------- | -------------------- | ------------ | ------------------------------------------- |\n| `OpenAI`       | 联网、新闻、内容爬取 | 流式、非流式 | Zeabur、本地部署、Cloudflare Worker、Vercel |\n| `Azure OpenAI` | 联网、新闻、内容爬取 | 流式、非流式 | Cloudflare Worker                           |\n| `Groq`         | 联网、新闻、内容爬取 | 流式、非流式 | Cloudflare Worker                           |\n| `Gemini`       | 联网                 | 流式、非流式 | Cloudflare Worker                           |\n| `Moonshot`     | 联网、新闻、内容爬取 | 部分流式、非流式       | Zeabur、本地部署、Cloudflare Worker（流式）、Vercel |\n\n# 使用\n\n**替换客户端自定义域名为你部署后的地址**\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cimg src=\"pictures/NextChat.png\" alt=\"效果示例\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n# 部署\n\n**Zeabur一键部署**\n\n点击按钮即可一键部署，修改环境变量\n\n[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/A4HGYF?referralCode=fatwang2)\n\n如需保持项目更新，建议先fork本仓库，再通过Zeabur部署你的分支\n\n[![Deployed on Zeabur](https://zeabur.com/deployed-on-zeabur-dark.svg)](https://zeabur.com?referralCode=fatwang2\u0026utm_source=fatwang2\u0026utm_campaign=oss)\n\n**本地部署**\n\n1. 克隆仓库到本地\n\n```\ngit clone https://github.com/fatwang2/search2ai\n```\n\n2. 复制.env.template为.env，配置环境变量\n3. 进入api目录，运行程序，实时显示日志\n\n```\ncd api \u0026\u0026 nohup node index.js \u003e output.log 2\u003e\u00261 \u0026 tail -f output.log\n```\n\n4. 端口3014，拼接后的完整地址如下，可根据客户端的需求配置apibase地址使用（如需https，需用nginx进行反代，网上教程很多）\n\n```\nhttp://localhost:3014/v1/chat/completions\n```\n\n**Cloudflare Worker部署**\n\n1. 复制[search2openai.js](search2openai.js)或者[search2gemini.js](search2gemini.js)或者[search2groq.js](search2groq.js)的代码，不需要任何修改！在cloudflare的worker里部署，上线后的worker的地址可作为你接口调用时的自定义域名地址，注意拼接，worker地址仅代表v1前的部分\n2. 在worker中配置环境变量\n   ![效果示例](pictures/worker.png)\n3. worker里配置触发器-自定义域名，国内直接访问worker的地址可能会出问题，需要替换为自定义域名\n   ![Alt text](pictures/域名.png)\n\n**Vercel部署**\n\n特别说明：vercel项目暂不支持流式输出，且有10s响应限制，实际使用体验不佳，放出来主要是想等大神给我pull request\n\n一键部署\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Ffatwang2%2Fsearch2ai\u0026env=SEARCH_SERVICE\u0026envDescription=%E6%9A%82%E6%97%B6%E6%94%AF%E6%8C%81google%E3%80%81bing%E3%80%81serpapi%E3%80%81serper%E3%80%81duckduckgo%EF%BC%8C%E5%BF%85%E5%A1%AB)\n\n为保证更新，也可以先fork本项目后自己在vercel上部署\n\n# 环境变量\n\n该项目提供了一些额外的配置项，通过环境变量设置：\n\n| 环境变量             | 是否必须 | 描述                                                                                                                  | 例子                                                                             |\n| -------------------- | -------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |\n| `SEARCH_SERVICE`   | Yes      | 你的搜索服务，选择什么服务，就需要配置什么服务的key | `search1api, google, bing, serpapi, serper, duckduckgo, searxng`               |\n| `APIBASE`          | No       | 三方代理地址                                                                                                         | `https://api.openai.com, https://api.moonshot.cn, https://api.groq.com/openai` |\n| `MAX_RESULTS`      | Yes      | 搜索结果条数                                                                                                          | `10`                                                                           |\n| `CRAWL_RESULTS`    | No       | 要进行深度搜索（搜索后获取网页正文）的数量，目前仅支持 search1api，深度速度会慢                                       | `1`                                                                            |\n| `SEARCH1API_KEY`   | No       | 如选search1api必填，我自己的搜索服务，注册免费领取 100 积分，点击[链接](https://www.search1api.com/?utm_source=search2ai)                                 | `xxx`                                                                          |\n| `BING_KEY`         | No       | 如选bing搜索必填，请自行搜索教程，点击[链接](https://www.microsoft.com/en-us/bing/apis/bing-web-search-api) 创建                                              | `xxx`                                                                          |\n| `GOOGLE_CX`        | No       | 如选Google搜索必填，Search engine ID，请自行搜索教程，点击[链接](https://programmablesearchengine.google.com/controlpanel/create) 创建                      | `xxx`                                                                          |\n| `GOOGLE_KEY`       | No       | 如选Google搜索必填，API key，点击[链接](https://console.cloud.google.com/apis/credentials) 创建                                              | `xxx`                                                                          |\n| `SERPAPI_KEY`      | No       | 如选serpapi必填，免费100次/月，点击[链接](https://serpapi.com/) 注册                                              | `xxx`                                                                          |\n| `SERPER_KEY`       | No       | 如选serper必填，6个月免费额度2500次，点击[链接](https://serper.dev/) 注册                                         | `xxx`                                                                          |\n| `SEARXNG_BASE_URL` | No       | 如选searxng必填，填写自建searXNG服务域名，需打开 json 模式，教程参考[链接](https://github.com/searxng/searxng) | `https://search.xxx.xxx`                                                                         |\n| `OPENAI_TYPE`      | No       | openai供给来源，默认为openai                                                                                          | `openai, azure`                                                                |\n| `RESOURCE_NAME`    | No       | 如选azure必填                                                                                                         | `xxxx`                                                                         |\n| `DEPLOY_NAME`      | No       | 如选azure必填                                                                                                         | `gpt-35-turbo`                                                                 |\n| `API_VERSION`      | No       | 如选azure必填                                                                                                         | `2024-02-15-preview`                                                           |\n| `AZURE_API_KEY`    | No       | 如选azure必填                                                                                                         | `xxxx`                                                                         |\n| `AUTH_KEYS`        | No       | 如果希望用户请求的时候单独定义授权码作为key，则需要填写，如选azure则必填                                              | `000,1111,2222`                                                                |\n| `OPENAI_API_KEY`   | No       | 如果希望用户请求openai的时候也单独定义授权码作为key，则需要填写                                                       | `sk-xxx`                                                                       |\n\n# 后续迭代\n\n- 修复Vercel项目流式输出问题\n- 提升流式输出的速度\n- 支持更多垂类搜索\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatwang2%2Fsearch2ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffatwang2%2Fsearch2ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatwang2%2Fsearch2ai/lists"}