Skip to content

chengtx809/OneLine

Repository files navigation

OneLine (一线)

OneLine(一线)是一个AI驱动的热点事件梳理分析工具,让您轻松追踪和了解热门事件的发展过程及其带来的影响。

  • GitHub Stars GitHub Forks

演示

在线体验:https://oneline.chengtx.me

OneLine 截图1 OneLine 截图2

🌟 主要功能

  • 利用AI技术为热点新闻生成完整时间轴,直观展示事件发展过程
  • 支持自定义搜索内容,实时生成您感兴趣的事件时间轴
  • 内置网络搜索功能,自动获取最新事件信息
  • 简洁优雅的用户界面,提供流畅的浏览体验
  • 支持多种AI模型,包括Gemini和OpenAI的API
  • 支持SearXNG自定义搜索引擎,提供更精准的内容检索

🔧 技术栈

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui 组件库

🚀 快速开始

Vercel部署(推荐)

fork仓库后填入环境变量部署即可

Docker部署

直接使用预构建的Docker镜像:

docker pull justincnn/oneline

然后运行容器:

docker run -p 3000:3000 justincnn/oneline

访问 http://localhost:3000 即可使用。

Docker配置

如果需要自定义配置,可以通过环境变量进行设置:

docker run -p 3000:3000 \
  -e API_ENDPOINT=https://api.example.com/v1/chat/completions \
  -e API_MODEL=gemini-2.0-pro-exp-search \
  -e API_KEY=your_api_key_here \
  -e NEXT_PUBLIC_ALLOW_USER_CONFIG=true \
  -e NEXT_PUBLIC_SEARXNG_URL=https://sousuo.emoe.top \
  -e NEXT_PUBLIC_SEARXNG_ENABLED=true \
  justincnn/oneline

本地开发环境

  1. 克隆仓库
git clone https://github.com/chengtx809/OneLine.git
cd OneLine
  1. 安装依赖
# 使用bun包管理器(推荐)
bun install
# 或使用npm
npm install
  1. 配置环境变量
# 复制环境变量示例文件
cp .env.example .env.local
# 编辑.env.local文件,填入所需的API密钥等信息
  1. 启动开发服务器
bun run dev
# 或使用npm
npm run dev
  1. 访问 http://localhost:3000 开始使用

⚙️ 配置说明

.env.local 中配置以下环境变量:

# AI API端点
# 可以是OpenAI、Google Gemini等API
API_ENDPOINT=https://api.example.com/v1/chat/completions

# API模型名称
API_MODEL=gemini-2.0-pro-exp-search

# API密钥
API_KEY=your_api_key_here

# 是否允许用户自定义API配置
# "false"表示用户不能修改API配置
# "true"表示用户可以修改API配置
NEXT_PUBLIC_ALLOW_USER_CONFIG=true

# 访问密码(可选)
# 如果设置,用户需要输入密码才能访问API功能
NEXT_PUBLIC_ACCESS_PASSWORD=your_access_password_here

# SearXNG搜索引擎配置
# SearXNG搜索引擎的URL
NEXT_PUBLIC_SEARXNG_URL=https://sousuo.emoe.top
# 是否启用SearXNG
NEXT_PUBLIC_SEARXNG_ENABLED=true

重要说明:

  • NEXT_PUBLIC_ALLOW_USER_CONFIG 设置为 false 时,用户将无法修改API配置
  • 设置 NEXT_PUBLIC_ACCESS_PASSWORD 可增加对API访问的安全控制
  • SearXNG配置为可选,提供更精准的搜索能力

SearXNG集成

OneLine支持集成SearXNG搜索引擎,以提高搜索质量:

  1. 当设置了NEXT_PUBLIC_SEARXNG_URL环境变量时,系统将自动启用SearXNG
  2. 也可通过NEXT_PUBLIC_SEARXNG_ENABLED明确控制是否启用SearXNG
  3. 建议使用自己搭建的SearXNG实例,以获得更稳定的服务

SearXNG是一个尊重隐私的元搜索引擎,可以聚合多个搜索引擎的结果,提供更全面的搜索效果。

🌩️ Vercel部署

OneLine可以轻松部署到Vercel平台:

  1. Fork此仓库到您的GitHub账户
  2. 在Vercel中导入该项目
  3. 在Vercel环境变量设置中配置所需的API密钥和端点(至少需要设置API_KEYAPI_ENDPOINT
  4. 如果需要控制访问权限,可设置NEXT_PUBLIC_ACCESS_PASSWORD环境变量
  5. 部署完成后,Vercel会提供一个域名,您可以直接访问或绑定自定义域名

注意:如果在Vercel上部署遇到API超时问题,可以尝试修改netlify.toml文件中的配置以解决。

🤝 贡献指南

欢迎通过Pull Request或Issue贡献代码或提出建议。

📜 许可证

本项目采用MIT许可证 - 详情请查看LICENSE文件。

🔗 相关链接

🙏 致谢

  • 感谢@snailyp大佬的gemini-balance项目,为本项目Demo提供了API支持
  • 感谢@justincnn维护Docker镜像
  • 感谢所有贡献者和使用者的支持和反馈 Star History Chart Powered by DartNode

About

OneLine一线:AI驱动的热点事件分析工具

Resources

License

Stars

Watchers

Forks

Packages

No packages published