[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-RamiAwar--dataline":3,"tool-RamiAwar--dataline":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":32,"env_os":123,"env_gpu":124,"env_ram":124,"env_deps":125,"category_tags":131,"github_topics":133,"view_count":32,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":140,"updated_at":141,"faqs":142,"releases":177},8934,"RamiAwar\u002Fdataline","dataline","Chat with your data - AI data analysis and visualization on CSV, Postgres, MySQL, Snowflake, SQLite...","DataLine 是一款开源的 AI 驱动数据分析与可视化工具，旨在让用户通过自然语言对话轻松探索数据。无论是处理 CSV 文件，还是连接 Postgres、MySQL、Snowflake、SQLite 等多种数据库，用户只需输入日常语言指令，DataLine 即可自动生成并执行 SQL 查询，快速绘制图表或导出报告，将原本繁琐的数据分析过程简化为几秒钟的互动。\n\n它主要解决了传统数据分析门槛高、耗时长的痛点。对于非技术人员，无需掌握复杂的 SQL 语法即可获取数据洞察；对于后端开发者，它能大幅加速查询草稿的编写和新数据库的探索效率。在数据安全方面，DataLine 坚持“隐私优先”原则，所有数据均存储在本地设备，默认情况下会对发送给大模型的数据进行脱敏处理，确保企业级应用的安全性。\n\n这款工具非常适合希望快速挖掘数据价值的业务人员、数据分析师，以及需要高效调试查询的开发者。其独特的技术亮点在于广泛的源支持（涵盖 Excel、SAS 文件等）以及对本地化部署的完善支持，真正实现了“无云端、纯本地”的私密数据分析体验。作为一个社区驱动的开源项目，DataLine 正致力于让每个人都能以十","DataLine 是一款开源的 AI 驱动数据分析与可视化工具，旨在让用户通过自然语言对话轻松探索数据。无论是处理 CSV 文件，还是连接 Postgres、MySQL、Snowflake、SQLite 等多种数据库，用户只需输入日常语言指令，DataLine 即可自动生成并执行 SQL 查询，快速绘制图表或导出报告，将原本繁琐的数据分析过程简化为几秒钟的互动。\n\n它主要解决了传统数据分析门槛高、耗时长的痛点。对于非技术人员，无需掌握复杂的 SQL 语法即可获取数据洞察；对于后端开发者，它能大幅加速查询草稿的编写和新数据库的探索效率。在数据安全方面，DataLine 坚持“隐私优先”原则，所有数据均存储在本地设备，默认情况下会对发送给大模型的数据进行脱敏处理，确保企业级应用的安全性。\n\n这款工具非常适合希望快速挖掘数据价值的业务人员、数据分析师，以及需要高效调试查询的开发者。其独特的技术亮点在于广泛的源支持（涵盖 Excel、SAS 文件等）以及对本地化部署的完善支持，真正实现了“无云端、纯本地”的私密数据分析体验。作为一个社区驱动的开源项目，DataLine 正致力于让每个人都能以十倍的速度完成数据工作。","\n\u003Cp align=\"center\">\n    \u003Cstrong>💬 Chat with your data using natural language 📊\u003C\u002Fstrong>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    Introducing DataLine, \u003Cem>the simplest and fastest way\u003C\u002Fem>⚡️ to analyze and visualize your data!\u003Cbr>\u003Cem>Generate and export charts, tables, reports in seconds with DataLine - Your AI-driven data analysis and visualization tool\u003C\u002Fem> 🤓\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">⚠️ We're looking for maintainers! If you're interested, message me on Discord ⚠️\n\u003C\u002Fp>\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Framiawar\u002Fdataline\u002Ftotal?style=flat&color=%2322c55e\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Framiawar\u002Fdataline?color=%2338bdf8\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-6-orange.svg?style=flat\">\n\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Factions\u002Fworkflows\u002Ftest.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main&event=push\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## 🍿 Watch a quick demo\n\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FNN99OTVy7uA\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_90a1642ccb5b.png\" height=\"300\" alt=\"DataLine logo\">\u003C\u002Fa>\n\n---\n\n## Index\n\n- [Who is this for](#who-is-this-for)\n- [What is it](#what-is-it)\n- [Roadmap](#where-is-it-going)\n- [Feature Support](#feature-support)\n- [Getting started](#getting-started)\n  - [Windows](#windows)\n  - [Mac](#mac)\n  - [Linux](#linux)\n  - [Docker](#docker)\n- [Upgrading](#upgrading)\n  - [Windows](#upgrade-windows)\n  - [Mac](#upgrade-mac)\n  - [Linux](#upgrade-linux)\n  - [Docker](#upgrade-docker)\n- [Running manually](#running-manually)\n- [Authentication](#authentication)\n  - [With Docker](#with-docker)\n- [Startup Quest](#startup-quest)\n- [Supported Databases](#supported-databases)\n- [Deployment](#deployment)\n\n## Who is this for?\n\nTechnical or non-technical people who want to explore data, fast. ⚡️⚡️\n\nIt also works for backend developers to speed up drafting queries and explore new DBs with ease. 😎\n\nIt's especially well-suited for businesses given its security-first 🔒 and open-source 📖 nature.\n\n## What is it?\n\nDataLine is an AI-driven data analysis and visualization tool.\n\nIt's privacy-focused, storing everything on your device. No ☁️, only ☀️!\n\nIt hides your data from the LLMs used by default, but this can be disabled if the data is not deemed sensitive.\n\nIt can connect to a variety of data sources (Postgres, Snowflake, MySQL, Azure SQL Server, Microsoft SQL Server, [Excel](#excel-support), SQLite, CSV, sas7bdat, and more), execute queries, generate charts, and allow for copying the results to build reports quickly.\n\n## Where is it going?\n\nFor now, we're trying to help people get insights out of their data, fast.\n\nThis is meant to enable non-technical folks to query data and aid data analysts in getting their jobs done 10x as fast.\n\nBut you can still influence the direction we go in. We're building this for you, so you have the biggest say.\n\n## Feature Support\n\n- [x] Broad DB support: Postgres, MySQL, Snowflake, [Excel](#excel-support), CSV, SQLite, and more\n- [x] Generating and executing SQL from natural language\n- [x] Ability to modify SQL results, save them, and re-run\n- [x] Better support for explorative questions\n- [x] Querying data files like CSV, [Excel](#excel-support), SQLite, sas7bdat (more connection types)\n- [x] Charting via natural language\n- [x] Modifying chart queries and re-rendering\u002Frefreshing charts\n- [ ] Dashboards and triggers\n- [ ] Knowledge base and 'trainable' examples (flavor of RAG)\n- [ ] More advanced charting options (bubble, stacks, etc.)\n\nWith a lot more coming soon. You can still influence what we build, so if you're a user and you're down for it, we'd love to interview you! Book some time with one of us here:\n\n- [Rami](https:\u002F\u002Fcalendly.com\u002Framiawar\u002Fquick)\n- [Anthony](https:\u002F\u002Fcalendly.com\u002Fanthonymalkoun)\n\n## Getting started\n\nThere are multiple ways of setting up DataLine, simplest being using a binary executable. This allows you to download a file and run it to get started.\n\nA more flexible option is using our hosted Docker image. This allows you to setup authentication and other features if you need them.\n\n#### Windows\n\nHead over to our [releases](https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Ftags) page, and open the most recent one. There you should find a windows-exe.zip file. Download it, unzip it, and run the `DataLine.exe` file.\n\nYou might get a `\"Windows protected your PC\"` message, which is normal (more info -> run anyway). Finally, open http:\u002F\u002Flocalhost:7377\u002F in your browser.\n\n#### Mac\n\nHomebrew\n\n```bash\n# install dataline\nbrew tap ramiawar\u002Fdataline\nbrew install dataline\n\n# run dataline\ndataline\n```\n\nIf you don't like Homebrew, a binary can be found in the latest release!\n\nDataLine should then be running on port 7377 accessible from your browser: http:\u002F\u002Flocalhost:7377\n\n#### Linux\n\nYou can use Homebrew, see the [Mac](#mac) section.\n\nYou may also wish to use the binary instead, to do so, follow the instructions in the [Windows](#windows) section, and use the `dataline-linux.tar.zip` file instead.\n\n#### Docker\n\nYou can also use our official docker image and get started in one command. This is more suitable for business use:\n\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\nYou can manage this as you would any other container. `docker start dataline`, `docker stop dataline`\n\nFor updating to a new version, just remove the container and rerun the command. This way the volume is persisted across updates.\n\n```bash\ndocker rm dataline\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\nTo connect to the frontend, you can then visit:\n[http:\u002F\u002Flocalhost:7377](http:\u002F\u002Flocalhost:7377)\n\n## Upgrading\n\n#### Upgrade Windows\nSame as installation, just replace old exe with new exe! Your data will still be there across versions.\n\n#### Upgrade Mac\n\nHomebrew (retains your data, don't worry about that!)\n\n```bash\nbrew update && brew upgrade dataline\n```\n\nIf you don't like Homebrew, a binary can be found in the latest release! Data will still be retained there as well.\n\n#### Upgrade Linux\n\nIf using Homebrew, same as above. Otherwise simply replace the old binary with the new one!\n\n#### Upgrade Docker \n\nFor updating to a new version, just remove the container and rerun the command. This way the volume is persisted across updates.\n\n```bash\ndocker rm dataline\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\n## Running manually\n\nFeeling spicy are we? 🌶️\nThere are a few things you should know. DataLine is split into two parts: the backend and the frontend.\n\nThe backend is a Python FastAPI server, and the frontend is a React app.\nThe frontend also includes our landing page, so you need to set up an env var first!\n\nCheck the [backend](.\u002Fbackend\u002FREADME.md) and [frontend](.\u002Ffrontend\u002FREADME.md) readmes.\n\n## Authentication\n\nDataLine also supports basic auth 🔒 in self-hosted mode 🥳 in case you're hosting it and would like to secure it with a username\u002Fpassword.\n\nAuth is NOT supported ❌ when running the DataLine executable.\n\nTo enable authentication on the self-hosted version, add the environment variables AUTH_USERNAME and AUTH_PASSWORD while launching the service. ✅\n\n### With Docker\n\nInject the env vars with the docker run command as follows:\n`docker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline -e AUTH_USERNAME=admin -e AUTH_PASSWORD=admin ramiawar\u002Fdataline:latest`\n\nWe plan on supporting multiple user auth in the future, but for now it supports a single user by default.\n\n## Startup Quest\n\nGo through the following checklist to explore DataLine's features!\n\n- [ ] Create a sample database connection\n- [ ] Create a new chat and rename it\n- [ ] Start asking questions about your data and getting answers\n- [ ] Refresh the page and re-run some SQL queries\n- [ ] Click inside an SQL query, modify it, and save your modification for later!\n- [ ] Try to modify your sample DB connection and explore the connection editor page\n- [ ] Try asking for a chart!\n- [ ] To really challenge it, ask a question that is answered with multiple results (charts, tables, etc.) - [example](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6ouSok9bOVo)\n- [ ] Add a profile picture\n\n### Supported databases\n\nSee [instructions file](.\u002Fdsn-instructions.md) for more details.\n\n### Deployment\n\nThe one thing you must configure when deploying DataLine to a custom domain is CORS allowed origins.\nTo do this, add the environment variable `ALLOWED_ORIGINS` (comma separated list of origins) to your domain name(s).\n\nBy default, it is set to `http:\u002F\u002Flocalhost:7377,http:\u002F\u002F0.0.0.0:7377` to make it work with local Docker and local binaries.\n\nFor example, running the docker image on a remote server with IP `123.123.12.34`:\n\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline -e ALLOWED_ORIGINS=\"http:\u002F\u002F123.123.12.34:7377,https:\u002F\u002F123.123.12.34:7377\" ramiawar\u002Fdataline:latest\n```\n\n### Excel Support\n\nWe support excel files, but they will have to conform to some structure for the time being. We also support multiple sheets - each sheet will be ingested as a separate table.\n\nRight now, we will try to automatically detect the 'header row' and the first column based on some manual data processing (so as to keep things secure). This means that we might detect the wrong things if you have extra rows on top \u002F logos \u002F branding elements.\n\nTo ensure the best quality, make sure your first row is the column names, and remove any padding rows\u002Fcolumns from all the sheets. If any sheet fails, the import will fail.\n\nFuture improvements to this include optionally allowing LLMs to figure out what the header row is to reduce user effort.\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https:\u002F\u002Fallcontributors.org\u002Fdocs\u002Fen\u002Femoji-key)):\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Framiawar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_7d88ed421f95.png\" width=\"100px;\" alt=\"Rami Awar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Rami Awar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=RamiAwar\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#design-RamiAwar\" title=\"Design\">🎨\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=RamiAwar\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#infra-RamiAwar\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-RamiAwar\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#blog-RamiAwar\" title=\"Blogposts\">📝\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3ARamiAwar\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"http:\u002F\u002Fanthonymalkoun.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_1a0c852e44f7.png\" width=\"100px;\" alt=\"anthony2261\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>anthony2261\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=anthony2261\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-anthony2261\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa> \u003Ca href=\"#infra-anthony2261\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-anthony2261\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#mentoring-anthony2261\" title=\"Mentoring\">🧑‍🏫\u003C\u002Fa> \u003Ca href=\"#maintenance-anthony2261\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3Aanthony2261\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwmahad\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_8c1d7b7241ea.png\" width=\"100px;\" alt=\"Walusimbi Mahad\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Walusimbi Mahad\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=wmahad\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-wmahad\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"http:\u002F\u002Fpeter.gy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_c9843bc5d088.png\" width=\"100px;\" alt=\"Péter Gyarmati\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Péter Gyarmati\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=peter-gy\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=peter-gy\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoehaddad2000\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_9911ab600789.png\" width=\"100px;\" alt=\"Joe Haddad\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Joe Haddad\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=joehaddad2000\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=joehaddad2000\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmaryamalki\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_e9287df5b303.png\" width=\"100px;\" alt=\"maryamalki\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>maryamalki\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=maryamalki\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=maryamalki\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffilip65\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_dfcdef57c51d.png\" width=\"100px;\" alt=\"Filip Katušin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Filip Katušin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=filip65\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3Afilip65\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) specification. Contributions of any kind welcome!\n","\u003Cp align=\"center\">\n    \u003Cstrong>💬 用自然语言与你的数据对话 📊\u003C\u002Fstrong>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    介绍 DataLine，\u003Cem>最简单、最快捷的方式\u003C\u002Fem>⚡️ 来分析和可视化你的数据！\u003Cbr>\u003Cem>使用 DataLine——你的 AI 驱动的数据分析与可视化工具——在几秒钟内生成并导出图表、表格和报告\u003C\u002Fem> 🤓\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">⚠️ 我们正在寻找维护者！如果你感兴趣，请在 Discord 上联系我 ⚠️\n\u003C\u002Fp>\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Framiawar\u002Fdataline\u002Ftotal?style=flat&color=%2322c55e\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Framiawar\u002Fdataline?color=%2338bdf8\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-6-orange.svg?style=flat\">\n\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Factions\u002Fworkflows\u002Ftest.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main&event=push\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## 🍿 观看快速演示\n\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FNN99OTVy7uA\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_90a1642ccb5b.png\" height=\"300\" alt=\"DataLine logo\">\u003C\u002Fa>\n\n---\n\n## 目录\n\n- [适用人群](#who-is-this-for)\n- [是什么](#what-is-it)\n- [路线图](#where-is-it-going)\n- [功能支持](#feature-support)\n- [快速入门](#getting-started)\n  - [Windows](#windows)\n  - [Mac](#mac)\n  - [Linux](#linux)\n  - [Docker](#docker)\n- [升级](#upgrading)\n  - [Windows](#upgrade-windows)\n  - [Mac](#upgrade-mac)\n  - [Linux](#upgrade-linux)\n  - [Docker](#upgrade-docker)\n- [手动运行](#running-manually)\n- [认证](#authentication)\n  - [使用 Docker](#with-docker)\n- [创业探索](#startup-quest)\n- [支持的数据库](#supported-databases)\n- [部署](#deployment)\n\n## 适用人群？\n\n无论是技术人员还是非技术人员，只要想快速探索数据，都可以使用它。⚡️⚡️\n\n对于后端开发者来说，它也能帮助他们更快地编写查询语句，并轻松探索新的数据库。😎\n\n尤其适合企业使用，因为它以安全为先 🔒，同时采用开源 📖 模式。\n\n## 是什么？\n\nDataLine 是一款由 AI 驱动的数据分析与可视化工具。\n\n它注重隐私保护，所有数据都存储在你的设备上。没有 ☁️，只有 ☀️！\n\n默认情况下，它会将你的数据与所使用的大型语言模型隔离开来，但如果数据不敏感，也可以关闭此功能。\n\n它可以连接多种数据源（Postgres、Snowflake、MySQL、Azure SQL Server、Microsoft SQL Server、[Excel](#excel-support)、SQLite、CSV、sas7bdat 等），执行查询、生成图表，并允许你复制结果以快速构建报告。\n\n## 未来发展方向？\n\n目前，我们的目标是帮助人们快速从数据中获取洞察。\n\n这旨在让非技术人员也能轻松查询数据，同时帮助数据分析师的工作效率提升 10 倍。\n\n不过，你仍然可以影响我们的发展方向。我们正是为你而建，所以你拥有最大的发言权。\n\n## 功能支持\n\n- [x] 广泛的数据库支持：Postgres、MySQL、Snowflake、[Excel](#excel-support)、CSV、SQLite 等\n- [x] 通过自然语言生成并执行 SQL\n- [x] 能够修改 SQL 查询结果、保存并重新执行\n- [x] 更好地支持探索性问题\n- [x] 查询 CSV、[Excel](#excel-support)、SQLite、sas7bdat 等数据文件（更多连接类型）\n- [x] 通过自然语言绘制图表\n- [x] 修改图表查询并重新渲染\u002F刷新图表\n- [ ] 仪表盘和触发器\n- [ ] 知识库和“可训练”示例（RAG 类型）\n- [ ] 更高级的图表选项（气泡图、堆叠图等）\n\n还有更多功能即将推出。你仍然可以影响我们的开发方向，所以如果你是用户并且愿意参与，我们非常乐意与你面谈！请在此处预约时间：\n\n- [Rami](https:\u002F\u002Fcalendly.com\u002Framiawar\u002Fquick)\n- [Anthony](https:\u002F\u002Fcalendly.com\u002Fanthonymalkoun)\n\n## 快速入门\n\n设置 DataLine 的方式有很多，最简单的是使用二进制可执行文件。只需下载一个文件并运行即可开始使用。\n\n更灵活的选择是使用我们托管的 Docker 镜像。这样你可以根据需要设置认证和其他功能。\n\n#### Windows\n\n前往我们的 [发布页面](https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Ftags)，打开最新的版本。你应该能找到一个 windows-exe.zip 文件。下载并解压后，运行 `DataLine.exe` 文件。\n\n你可能会看到一条提示：“Windows 已保护您的电脑”，这是正常的（更多信息 -> 仍要运行）。最后，在浏览器中打开 http:\u002F\u002Flocalhost:7377\u002F。\n\n#### Mac\n\nHomebrew\n\n```bash\n# 安装 dataline\nbrew tap ramiawar\u002Fdataline\nbrew install dataline\n\n# 运行 dataline\ndataline\n```\n\n如果你不喜欢 Homebrew，最新发布的版本中也有二进制文件！\n\nDataLine 应该会在端口 7377 上运行，你可以在浏览器中访问：http:\u002F\u002Flocalhost:7377。\n\n#### Linux\n\n你可以使用 Homebrew，参见 [Mac](#mac) 部分。\n\n你也可以直接使用二进制文件，方法同 [Windows](#windows) 部分所述，只是使用 `dataline-linux.tar.zip` 文件即可。\n\n#### Docker\n\n你还可以使用我们的官方 Docker 镜像，只需一条命令即可启动。这种方式更适合企业使用：\n\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\n你可以像管理其他容器一样管理它。`docker start dataline`、`docker stop dataline`。\n\n要更新到新版本，只需删除容器并重新运行命令即可。这样卷会跨版本保持持久化。\n\n```bash\ndocker rm dataline\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\n要连接到前端，你可以访问：\n[http:\u002F\u002Flocalhost:7377](http:\u002F\u002Flocalhost:7377)\n\n## 升级\n\n#### Windows 升级\n与安装步骤相同，只需用新版本的可执行文件替换旧版即可！你的数据在不同版本之间会一直保留。\n\n#### Mac 升级\n\nHomebrew（你的数据会保留，不用担心！）\n\n```bash\nbrew update && brew upgrade dataline\n```\n\n如果你不喜欢 Homebrew，最新发布的版本中也有二进制文件！数据同样会被保留。\n\n#### Linux 升级\n\n如果使用 Homebrew，步骤同上。否则只需用新版本的二进制文件替换旧版即可！\n\n#### Docker 升级\n\n要更新到新版本，只需删除容器并重新运行命令即可。这样卷会在更新过程中保持持久化。\n\n```bash\ndocker rm dataline\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\n## 手动运行\n\n想要挑战一下吗？🌶️\n你需要了解几点。DataLine 分为后端和前端两部分。\n\n后端是一个 Python FastAPI 服务器，前端是一个 React 应用程序。\n前端还包括我们的登录页面，因此你需要先设置一个环境变量！\n\n请查看 [后端](.\u002Fbackend\u002FREADME.md) 和 [前端](.\u002Ffrontend\u002FREADME.md) 的说明文档。\n\n## 身份验证\n\nDataLine 在自托管模式下也支持基本的身份验证 🔒 🥳，如果您正在自行托管 DataLine 并希望通过用户名\u002F密码来保护它，就可以使用此功能。\n\n在运行 DataLine 可执行文件时，身份验证是不支持的 ❌。\n\n要在自托管版本中启用身份验证，请在启动服务时添加环境变量 `AUTH_USERNAME` 和 `AUTH_PASSWORD`。✅\n\n### 使用 Docker\n\n通过以下 `docker run` 命令注入环境变量：\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline -e AUTH_USERNAME=admin -e AUTH_PASSWORD=admin ramiawar\u002Fdataline:latest\n```\n\n我们计划在未来支持多用户身份验证，但目前默认只支持单个用户。\n\n## 启动指南\n\n请按照以下清单探索 DataLine 的各项功能！\n\n- [ ] 创建一个示例数据库连接\n- [ ] 创建一个新的聊天并重命名\n- [ ] 开始向 DataLine 提问关于您的数据，并获取答案\n- [ ] 刷新页面并重新运行一些 SQL 查询\n- [ ] 点击 SQL 查询中的内容，对其进行修改，并保存以便日后使用！\n- [ ] 尝试修改您的示例数据库连接，探索连接编辑器页面\n- [ ] 尝试请求生成一张图表！\n- [ ] 如果想真正挑战一下，可以提出一个会返回多个结果（图表、表格等）的问题——[示例](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6ouSok9bOVo)\n- [ ] 添加个人头像\n\n### 支持的数据库\n\n更多详细信息请参阅 [说明文档](.\u002Fdsn-instructions.md)。\n\n### 部署\n\n将 DataLine 部署到自定义域名时，您必须配置的一项内容是 CORS 允许的来源。为此，请将环境变量 `ALLOWED_ORIGINS`（以逗号分隔的来源列表）添加到您的域名中。\n\n默认情况下，该变量设置为 `http:\u002F\u002Flocalhost:7377,http:\u002F\u002F0.0.0.0:7377`，以便与本地 Docker 和本地二进制文件兼容。\n\n例如，在具有 IP 地址 `123.123.12.34` 的远程服务器上运行 Docker 镜像：\n\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline -e ALLOWED_ORIGINS=\"http:\u002F\u002F123.123.12.34:7377,https:\u002F\u002F123.123.12.34:7377\" ramiawar\u002Fdataline:latest\n```\n\n### Excel 文件支持\n\n我们支持 Excel 文件，但目前这些文件需要符合一定的结构。同时，我们也支持多张工作表——每一张工作表都会被导入为一个独立的表。\n\n现阶段，我们会尝试自动检测“标题行”和第一列，这依赖于一些手动的数据处理（以确保安全性）。因此，如果您的表格顶部有多余的行、徽标或品牌元素，系统可能会误判。\n\n为了保证最佳质量，请确保您的第一行是列名，并移除所有工作表中的空白行和空白列。如果任何一张工作表不符合要求，整个导入过程将会失败。\n\n未来，我们将考虑让大语言模型自动识别标题行，从而进一步减少用户的操作步骤。\n\n## 贡献者 ✨\n\n感谢以下各位优秀的朋友（[emoji key](https:\u002F\u002Fallcontributors.org\u002Fdocs\u002Fen\u002Femoji-key)）：\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - 请勿删除或修改此部分 -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Framiawar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_7d88ed421f95.png\" width=\"100px;\" alt=\"Rami Awar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Rami Awar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=RamiAwar\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"#design-RamiAwar\" title=\"设计\">🎨\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=RamiAwar\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"#infra-RamiAwar\" title=\"基础设施（托管、构建工具等）\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-RamiAwar\" title=\"打包\u002F移植到新平台\">📦\u003C\u002Fa> \u003Ca href=\"#blog-RamiAwar\" title=\"博客文章\">📝\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3ARamiAwar\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"http:\u002F\u002Fanthonymalkoun.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_1a0c852e44f7.png\" width=\"100px;\" alt=\"anthony2261\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>anthony2261\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=anthony2261\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-anthony2261\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa> \u003Ca href=\"#infra-anthony2261\" title=\"基础设施（托管、构建工具等）\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-anthony2261\" title=\"打包\u002F移植到新平台\">📦\u003C\u002Fa> \u003Ca href=\"#mentoring-anthony2261\" title=\"指导\">🧑‍🏫\u003C\u002Fa> \u003Ca href=\"#maintenance-anthony2261\" title=\"维护\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3Aanthony2261\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwmahad\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_8c1d7b7241ea.png\" width=\"100px;\" alt=\"Walusimbi Mahad\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Walusimbi Mahad\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=wmahad\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-wmahad\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"http:\u002F\u002Fpeter.gy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_c9843bc5d088.png\" width=\"100px;\" alt=\"Péter Gyarmati\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Péter Gyarmati\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=peter-gy\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=peter-gy\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoehaddad2000\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_9911ab600789.png\" width=\"100px;\" alt=\"Joe Haddad\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Joe Haddad\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=joehaddad2000\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=joehaddad2000\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmaryamalki\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_e9287df5b303.png\" width=\"100px;\" alt=\"maryamalki\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>maryamalki\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=maryamalki\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=maryamalki\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"14.28%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffilip65\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_readme_dfcdef57c51d.png\" width=\"100px;\" alt=\"Filip Katušin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Filip Katušin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcommits?author=filip65\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues?q=author%3Afilip65\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\n本项目遵循 [all-contributors](https:\u002F\u002Fgithub.com\u002Fall-contributors\u002Fall-contributors) 规范。欢迎任何形式的贡献！","# DataLine 快速上手指南\n\nDataLine 是一款开源的 AI 驱动数据分析与可视化工具，支持通过自然语言对话来查询数据、生成图表和报告。它注重隐私，所有数据均存储在本地设备或您的私有服务器上。\n\n## 环境准备\n\n*   **操作系统**：Windows, macOS, 或 Linux\n*   **前置依赖**：\n    *   **方式一（推荐）**：无需额外依赖，直接下载二进制可执行文件。\n    *   **方式二（macOS\u002FLinux）**：需安装 [Homebrew](https:\u002F\u002Fbrew.sh\u002F)。\n    *   **方式三（通用\u002F部署）**：需安装 [Docker](https:\u002F\u002Fwww.docker.com\u002F)。\n*   **浏览器**：现代浏览器（Chrome, Edge, Firefox 等），用于访问 `http:\u002F\u002Flocalhost:7377`。\n*   **数据源**：支持 PostgreSQL, MySQL, Snowflake, SQL Server, SQLite, CSV, Excel (.xlsx), sas7bdat 等。\n\n## 安装步骤\n\n您可以根据系统选择以下任意一种方式进行安装：\n\n### 方式一：使用 Docker（推荐用于生产环境或跨平台）\n\n一行命令即可启动，数据通过卷（volume）持久化保存。\n\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline ramiawar\u002Fdataline:latest\n```\n\n若需设置用户名密码认证，可添加环境变量：\n```bash\ndocker run -p 7377:7377 -v dataline:\u002Fhome\u002F.dataline --name dataline -e AUTH_USERNAME=admin -e AUTH_PASSWORD=admin ramiawar\u002Fdataline:latest\n```\n\n### 方式二：macOS (Homebrew)\n\n```bash\n# 添加 tap 源\nbrew tap ramiawar\u002Fdataline\n\n# 安装\nbrew install dataline\n\n# 运行\ndataline\n```\n\n### 方式三：Windows \u002F Linux (二进制文件)\n\n1.  前往 GitHub [Releases 页面](https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Ftags) 下载最新版本的压缩包。\n    *   Windows: 下载 `windows-exe.zip`\n    *   Linux: 下载 `dataline-linux.tar.zip`\n2.  解压文件。\n3.  运行可执行文件：\n    *   Windows: 双击 `DataLine.exe` (若出现安全提示，请选择“仍要运行”)。\n    *   Linux: 在终端赋予执行权限并运行 (`chmod +x dataline && .\u002Fdataline`)。\n\n## 基本使用\n\n安装完成后，打开浏览器访问 **http:\u002F\u002Flocalhost:7377**。\n\n### 1. 连接数据源\n*   点击界面上的 **\"Create Connection\"**。\n*   选择数据库类型（如 PostgreSQL, MySQL, CSV, Excel 等）。\n*   填写连接信息（主机、端口、用户名、密码等）并测试连接。\n    *   *注：对于 Excel\u002FCSV 文件，确保第一行为列名，且无多余的表头行或 Logo。*\n\n### 2. 开始对话分析\n*   创建一个新的聊天窗口（Chat）。\n*   在输入框中使用自然语言提问，例如：\n    ```text\n    显示上个月销售额最高的前 5 个产品\n    ```\n    或者\n    ```text\n    Plot a bar chart of user growth by month\n    ```\n*   DataLine 会自动生成 SQL 语句并执行，随后以表格或图表形式展示结果。\n\n### 3. 调整与导出\n*   **修改查询**：点击生成的 SQL 代码块进行手动编辑，然后点击运行以刷新结果。\n*   **保存结果**：您可以保存修改后的查询供日后使用。\n*   **导出**：直接将生成的图表或表格复制粘贴到您的报告中。\n\n### 4. 进阶功能体验\n*   尝试询问需要多步推理的问题。\n*   在连接编辑器中修改现有的数据库配置。\n*   上传头像完善个人资料。","某电商公司的运营经理急需分析上季度的销售数据以制定促销策略，但面对存储在 PostgreSQL 数据库中的百万级订单记录，他无法直接获取洞察。\n\n### 没有 dataline 时\n- **沟通成本高昂**：运营人员必须编写详细的需求文档并等待数据分析师排期，简单的取数需求往往需要耗时数天才能反馈。\n- **技术门槛阻碍探索**：非技术人员不懂 SQL 语法，无法自行验证假设或进行临时的多维度的数据下钻分析。\n- **可视化流程繁琐**：即使拿到了数据表格，还需手动导出至 Excel 或 BI 工具中重新配置图表，反复调整格式浪费大量时间。\n- **迭代响应迟缓**：当业务方向微调需要变更查询逻辑时，整个“提需求 - 写代码 - 跑数据”的流程必须重来一遍。\n\n### 使用 dataline 后\n- **自然语言即时交互**：运营经理直接用中文提问“展示上季度各品类销售额趋势”，dataline 自动将其转化为 SQL 并秒级返回结果。\n- **零代码自主探索**：业务人员可连续追问“只看不含退货的订单”或“按地区拆分”，无需依赖技术人员即可自由探索数据细节。\n- **一键生成可视化图表**：只需指令“画成柱状图对比”，dataline 即刻渲染出专业图表，支持直接在界面调整维度并刷新视图。\n- **敏捷迭代分析路径**：修改分析思路仅需在对话框补充新条件，dataline 自动修正查询逻辑并重新执行，将分析周期从几天缩短至几分钟。\n\ndataline 通过让业务人员直接用自然语言对话数据库，彻底打破了技术与业务之间的壁垒，实现了数据洞察的实时化与民主化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRamiAwar_dataline_90a1642c.png","RamiAwar","Rami Awar","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FRamiAwar_7d88ed42.jpg","Software Wizard","@sendcloud","Delft, Netherlands",null,"iamramiawar","https:\u002F\u002Framiawar.github.io\u002F","https:\u002F\u002Fgithub.com\u002FRamiAwar",[85,89,93,97,101,104,108,111,115],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",59.2,{"name":90,"color":91,"percentage":92},"Python","#3572A5",38.5,{"name":94,"color":95,"percentage":96},"Dockerfile","#384d54",0.6,{"name":98,"color":99,"percentage":100},"Shell","#89e051",0.4,{"name":102,"color":103,"percentage":100},"HTML","#e34c26",{"name":105,"color":106,"percentage":107},"CSS","#663399",0.3,{"name":109,"color":110,"percentage":107},"Jinja","#a52a22",{"name":112,"color":113,"percentage":114},"JavaScript","#f1e05a",0.2,{"name":116,"color":117,"percentage":118},"Mako","#7e858d",0.1,1543,158,"2026-04-17T14:14:17","GPL-3.0","Windows, macOS, Linux","未说明",{"notes":126,"python":127,"dependencies":128},"该工具主要提供预编译二进制文件 (.exe, .tar.zip) 和 Docker 镜像，普通用户无需手动配置环境。支持通过 Homebrew (macOS\u002FLinux) 安装。手动运行时需分别配置后端 (Python FastAPI) 和前端 (React)。数据存储在本地设备，默认隐藏数据以防泄露给 LLM。Docker 部署时可通过环境变量配置基本认证 (AUTH_USERNAME, AUTH_PASSWORD) 和 CORS (ALLOWED_ORIGINS)。","未说明 (手动运行提及后端为 Python FastAPI)",[129,130],"FastAPI","React",[14,15,35,132,16,13],"其他",[134,135,136,137,138,139],"ai","chart","data-science","data-visualization","llm","sql","2026-03-27T02:49:30.150509","2026-04-18T14:24:41.244263",[143,148,152,157,162,167,172],{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},40080,"默认的登录用户名和密码是什么？","默认凭据可能因版本而异，建议查阅 README 中的部署部分获取最新示例。如果无法使用 'admin'\u002F'admin' 登录，请检查是否启用了身份验证。若启用，需配置允许的来源（allowed origins）环境变量（例如添加 IP 地址或设置为 0.0.0.0），或者直接在 localhost 上运行应用以避免 CORS 问题。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F249",{"id":149,"question_zh":150,"answer_zh":151,"source_url":147},40081,"如何解决因身份验证启用导致的 CORS（跨域资源共享）错误？","这是一个保护 Cookie 的安全机制。解决方法有两种：\n1. 在运行 Docker 容器时，添加环境变量将你的 IP 地址加入允许的来源列表（例如设置允许起源为 0.0.0.0）。\n2. 直接从 localhost 访问应用程序。\n未来版本可能会在禁用身份验证时自动跳过此检查，但目前请按上述方法操作。",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},40082,"是否支持通用的 OpenAI 端点（如 Azure OpenAI 或 LiteLLM）？","是的，该功能已合并到主分支并将包含在下一个版本中。用户可以通过配置文件设置 `base_url` 参数来连接通用的 OpenAI 兼容端点（如 Azure OpenAI, LiteLLM 等）。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F240",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},40083,"为什么在 Docker 中运行时数据库会被锁定或无法初始化样本数据库？","这通常是由于 FastAPI 的变更导致连接未正确关闭，或者是环境变量配置问题导致数据库未存储在正确的卷（volume）中。\n解决方案：\n1. 确保使用了最新的修复版本（已解决 FastAPI 破坏性变更）。\n2. 检查 Docker 卷挂载配置，确认数据库文件确实写入了持久化卷。可以通过 `docker volume inspect dataline` 查看路径，并使用特权容器进入宿主机验证文件是否存在。\n3. 检查与用户数据配置相关的环境变量设置。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F190",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},40084,"连接 MySQL 或 Postgres 数据库时出现 \"BaseGPTIndex.__init__() got an unexpected keyword argument 'documents'\" 错误怎么办？","该错误通常由依赖库版本不兼容引起（特别是 LlamaIndex 相关组件）。请尝试更新项目依赖到最新版本，或者回退到与当前代码兼容的特定版本。维护者曾指出在连接 MySQL 时遇到过类似问题，通常通过调整索引构建方式或更新库版本解决。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F27",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},40085,"AI 有时直接以文本形式生成 SQL 而不是调用查询工具，这是为什么？","这种情况通常发生在对话历史较长（例如超过 10 条消息）时，导致上下文窗口或消息历史处理方式影响了 AI 的工具调用决策。目前建议尽量保持对话简洁，或者重启聊天会话以重置上下文。开发团队计划为此添加测试用例以优化长历史对话中的工具调用稳定性。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F170",{"id":173,"question_zh":174,"answer_zh":175,"source_url":176},40086,"当用户一次性请求多个内容时，选定的表结果与生成的 SQL 对应关系混乱怎么办？","这是由于 OpenAI 工具调用并行化导致的。目前的临时解决方案是将所有选定的表结果聚合在一起，并放置在消息内容下方。虽然这可能导致结果看起来有些拥挤，但能确保用户看到所有相关数据。开发团队正在探索更好的方案来明确区分不同工具调用对应的结果。","https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fissues\u002F156",[178,183,188,193,198,202,207,212,217,222,227,232,237,242,247,252,257,262,267,271],{"id":179,"version":180,"summary_zh":181,"released_at":182},323599,"v1.2.0","## 变更内容\n* 重构：由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F377 中更新了适用于 macOS Silicon 和 Intel 的下载链接\n* 移除 hacky 滚动恢复功能，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F378 中完成\n* 修复新版本 tsrouter 中的 `to` 参数问题，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F390 中完成\n* 修复 `result dialect` 为可选的问题，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F392 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.1.5...v1.2.0","2025-05-29T21:30:13",{"id":184,"version":185,"summary_zh":186,"released_at":187},323600,"v1.1.5","## 变更内容 🏗️ \n\n* 功能：@RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F375 中添加了 x86_64 和 arm 架构的 macOS 构建，关闭了 #374  \n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.1.4...v1.1.5","2025-03-05T23:20:35",{"id":189,"version":190,"summary_zh":191,"released_at":192},323601,"v1.1.4","## 变更内容\n没有明显的功能变更！本次发布主要优化了构建流水线。\n\n我们已将 Dataline 迁移到 UV，并对不同平台的构建进行了小幅优化。这显著缩短了我们的构建时间（从 15 分钟降至 2 分钟，是的，我们知道这听起来很疯狂……）\n\n### 具体变更：\n* build(deps-dev)：在 \u002Fbackend 中将 virtualenv 从 20.26.3 升级至 20.26.6，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F368 中完成。\n* 将 Dataline 迁移到 UV，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F353 中完成。\n* 修复 Windows 环境下的测试用例，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F372 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.1.3...v1.1.4","2025-01-28T13:16:42",{"id":194,"version":195,"summary_zh":196,"released_at":197},323602,"v1.1.3","## 变更内容\n* 由 @RamiAwar 修复了因图表类型无效而导致的图表生成 bug\n* build(deps): 在 \u002F.github\u002Fworkflows 中将 dawidd6\u002Faction-download-artifact 从 2 升级到 6，由 @dependabot 完成，详见 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F361\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.1.2...v1.1.3","2024-11-27T23:12:54",{"id":199,"version":200,"summary_zh":80,"released_at":201},323603,"v1.1.2","2024-10-26T15:04:33",{"id":203,"version":204,"summary_zh":205,"released_at":206},323604,"v1.1.0","# ⚡️ 数据导出，改进 ⭐️\n\n## 变更内容\n* 重构 PostHog 捕获逻辑，修复启动时的 bug，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F337 中完成\n* 导航时滚动到顶部，但对话界面除外，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F338 中完成\n* 可展开的图表和代码块，由 @filip65 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F340 中实现 🔥\n* 文档：将 @filip65 添加为代码贡献者，并修复了一个 bug，由 @allcontributors 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F344 中完成\n* 功能：升级 LangChain 依赖，使用 Pydantic v2，由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F352 中完成 🤘🏻\n* 功能：将 Mirascope 升级至 v1.6.0 🥳\n* 数据导出功能已实现，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F342 中完成 ⚡️🚀\n\n## 新贡献者\n* @filip65 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F340 中完成了他们的首次贡献，感谢！🙏\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.14...v1.1.0","2024-10-25T16:44:33",{"id":208,"version":209,"summary_zh":210,"released_at":211},323605,"v1.0.14","## 变更内容\n\n* 网站上不再使用 GA，已迁移到 Umami 进行分析和事件跟踪！由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F314 中完成\n* 刷新数据库模式！🥳 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F322 中完成\n* 创建新连接时使用数据库对象中的 DSN，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F318 中完成\n* 功能：新增散点图支持，修复视觉错误，由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F319 中完成\n* 更新连接 DSN 时，同时更新连接选项，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F323 中完成\n* 文档：添加 All Contributors 规范支持！我们非常感谢各位贡献者 ❤️ @allcontributors 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F327 中完成\n* 是时候开始正规的产品开发了 🤓：添加了基于自定义上下文管理器的可选 Posthog 分析，并跟踪了一些事件，由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F334 中完成\n\n## 新贡献者\n* @allcontributors 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F327 中完成了他们的首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.13...v1.0.14","2024-09-23T20:31:46",{"id":213,"version":214,"summary_zh":215,"released_at":216},323606,"v1.0.13","## 变更内容\n* 通过 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F307 中的提交，简化了在打包和 Docker 镜像中设置 FE 基础 API 地址的过程。\n* 通过 @joehaddad2000 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F308 中的提交，改进了 InfoSQLDatabaseTool 中的表名验证功能。\n* 通过 @joehaddad2000 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F309 中的提交，新增了对话标题生成功能。\n\n## 新贡献者\n* @joehaddad2000 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F308 中完成了他们的首次贡献 🥳🎉\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.12...v1.0.13","2024-09-01T09:37:01",{"id":218,"version":219,"summary_zh":220,"released_at":221},323607,"v1.0.12","## 主要变更 🚀 🚀 \n\n* 通过添加 OpenAI 的 base_url 设置，支持更多提供商 🥳  @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F287 中实现\n* 修复自托管部署中的错误 🐛 🐛，方法是在打包的应用中指定 API 的基础 URL，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F294 中完成\n* ⚡ 在创建连接时切换模式和表 ⚡ 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F302 中实现\n\n## 次要变更 ✨ \n\n* 修复后端 README 中关于 SQLITE_PATH 的说明，由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F290 中完成\n* 修复：修正了 DSN 用户名和密码的验证正则表达式，由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F296 中完成\n* 为落地页添加 Umami 分析（以替代 Google Analytics），由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F295 和 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F298 中完成\n* 修复：“新建连接”界面修复，由 @peter-gy 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F300 中完成\n* 文档：修复 README.md 中的端口号，由 @peter-gy 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F299 中完成\n* 重构：重构代码块并修复 Storybook，由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F286 中完成\n\n\n## 新贡献者\n* @peter-gy 🥳 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F299 中完成了首次贡献。感谢 Peter！\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.11.1...v1.0.12","2024-08-22T22:36:24",{"id":223,"version":224,"summary_zh":225,"released_at":226},323608,"v1.0.11","### ⚡️ 这次更新内容非常丰富！我们带来了许多酷炫的新功能和改进。⚡️\n\n## 变更内容\n\n1. 我们新增了一个评估流水线，可以在评估 Langgraph 工作流变更时生成评分卡，从而检测质量方面的回归或提升。\n\n2. 根据 Erin 的需求，我们新增了对 MS SQL Server 的支持！🚀🚀（这项工作颇具挑战性，因为 SQL Server 包含一些我们此前从未接触过的复杂嵌套架构！）\n\n3. 修复了大量 bug。真的非常多！包括 SQLite 相关的 bug、错误处理问题、连接配置问题等等，几乎涵盖了所有可能的场景。\n\n----\n\n![GS8bKaDXUAAEOQ9](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff8de9d32-97c2-458a-a4ab-f20fb6199fd0)\n\n\n## 时间太短，想了解更多？没问题：\n\n* 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F258 中完成的 Headless UI 升级修复（迁移到 v2）\n* 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F259 中修复的迁移过程中丢失对话的问题\n* 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F260 中将 Snowflake 数据库驱动包升级至正式版本，并支持 SQLAlchemy v2\n* 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F261 中移除默认的 PRAGMA FK ON 设置（以解决一个棘手的 SQLite Bug）\n* 由 @anthony2261 和 @RamiAwar 共同开发的 LLM 工作流评估流水线，详见 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F262\n* 由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F269 中添加的工作流评估对比脚本\n* 由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F270 中进行的评估流水线测试\n* 由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F271 中为评估流水线添加对比功能\n* 由 @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F276 中添加下载链接\n* 由 @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F275 中实现的 Microsoft SQL Server 支持功能\n* 由 @anthony2261 和 @RamiAwar 共同完成的 MSSQL 改进及 README 指南，详见 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F277\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.10...v1.0.11","2024-07-29T19:15:06",{"id":228,"version":229,"summary_zh":230,"released_at":231},323609,"v1.0.10","## 变更内容\n* 感谢 @maryamalki！在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F256 中新增了 Excel 文件支持。\n* 感谢 @valentinplanes！在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F241 中新增了 sas7bdat 文件支持。\n* @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F248 中进行了认证相关的 minor 修复。\n* @anthony2261 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F254 中迁移到了 tanstack router。\n* @RamiAwar 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F244 中修复了 Docker 的 CORS 问题。\n\n## 新贡献者\n* @valentinplanes 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F241 中完成了他们的首次贡献 🥳 🎊。\n* @maryamalki 在 https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F256 中完成了他们的首次贡献 🥇 🥳 🎊。\n\n感谢大家！\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.9...v1.0.10","2024-07-13T22:20:37",{"id":233,"version":234,"summary_zh":235,"released_at":236},323610,"v1.0.8","## What's Changed\r\n\r\n* Refactor auth to use tanstack more efficiently by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F233\r\n* fix: Fixed data result streaming not rendering, add sample images by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F234\r\n* More smol fixes by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F235\r\n* Minimize SQLite DB locking when querying by grouping writes temporally @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F237\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.7...v1.0.8","2024-07-07T10:13:15",{"id":238,"version":239,"summary_zh":240,"released_at":241},323611,"v1.0.7","## What's Changed\r\n* Add linux.spec by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F224\r\n* Improve snowflake packaging by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F219\r\n* feat: Support error streaming to FE by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F223\r\n* feat: Stored sql run result by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F222\r\n* Add basic auth support by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F228\r\n* Improve MySQL connectivity by auto-adding connector in DSNs used by sqlalchemy by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F230\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.6...v1.0.7","2024-06-30T20:53:01",{"id":243,"version":244,"summary_zh":245,"released_at":246},323612,"v1.0.6","## What's Changed\r\n* Rework landing page by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F208\r\n* fix: Lock to FastAPI 0.105.0 by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F207\r\n* Fix bug of missing tool message (merge messages) by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F211\r\n* Added blog page by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F212\r\n* Add Snowflake support by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F218\r\n* Merge selected table results by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F220\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.5...v1.0.6","2024-06-23T18:42:57",{"id":248,"version":249,"summary_zh":250,"released_at":251},323613,"v1.0.5","## What's Changed\r\n* Nicer buttons by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F202\r\n* Fix bug with sample db persistence by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F203\r\n* Fix bug with expandable tables by @RamiAwar and @anthony2261 \r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.4...v1.0.5","2024-06-14T18:53:11",{"id":253,"version":254,"summary_zh":255,"released_at":256},323614,"v1.0.4","## What's Changed\r\n* Redirect to root page if chat not found by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F194\r\n* Make settings update a proper PATCH request by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F195\r\n* Show legend for doughnut charts only by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F196\r\n* Fix json encoding of charts with decimal values by @RamiAwar \r\n* Add table collapse\u002Fexpand\u002Fminimize functions by @RamiAwar\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.3...v1.0.4","2024-06-13T20:11:19",{"id":258,"version":259,"summary_zh":260,"released_at":261},323615,"v1.0.3","## What's Changed\r\n* fix: Fixed codeblock scroll bug by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F184\r\n* Make conversation list scrollable, make everything else fixed by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F182\r\n* Update landing page features table by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F189\r\n* Refactor run sql route by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F192\r\n* Fix\u002Fstreaming endpoint sqlite lock by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F193\r\n\r\n## New Contributors\r\n* @dependabot made their first contribution in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F161\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv0.1.2...v1.0.3","2024-06-11T17:47:59",{"id":263,"version":264,"summary_zh":265,"released_at":266},323616,"v1.0.2-beta","## What's Changed\r\n* Quick fix for unlinked results by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F157\r\n* Update readme setup instructions by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F155\r\n* Bring dockerfile up to date with latest code changes by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F154\r\n* SEO improvements by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F178\r\n* Update README.md by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F180\r\n* S13.2 result streaming by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F177\r\n* fix: Fixed codeblock scroll by @RamiAwar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F184\r\n* Make conversation list scrollable, make everything else fixed by @anthony2261 in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F182\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv1.0.0-beta...v1.0.2-beta","2024-06-06T19:10:40",{"id":268,"version":269,"summary_zh":80,"released_at":270},323617,"v1.0.0-beta","2024-05-28T19:53:29",{"id":272,"version":273,"summary_zh":274,"released_at":275},323618,"v0.1.3-beta","## What's Changed\r\n* Setup packaging for all platforms with PyInstaller @anthony2261 @ramiawar in https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fpull\u002F127\r\n* Create CI pipeline for packaging\r\n* Create homebrew tap for dataline\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRamiAwar\u002Fdataline\u002Fcompare\u002Fv0.1.2...v0.1.3-beta","2024-05-09T09:14:31"]