English | 中文
FXView is an interactive landscape of the AI ecosystem, powered by the CNCF's Landscape2 tool. It provides a dynamic and filterable view of AI companies and projects.
This project is supported by FusionX.
The landscape is generated through a combination of data files and scripts:
- Data Source: Company information is stored in individual Markdown/txt files within the
/companydirectory. Logos for these companies are stored in the/logosdirectory. - Data Processing: A Python script,
generate_landscape.py, reads the company Markdown/txt files, processes the data (e.g., generating pinyin prefixes for sorting, formatting URLs), and combines it into a singlelandscape.ymlfile. - Website Generation: The
landscape2command-line tool takes thelandscape.ymlfile, along withsettings.ymland thelogos/directory, to build a static HTML, CSS, and JavaScript website. - Deployment: The generated website is containerized using Docker and deployed to a cloud environment.
To build and view the landscape on your local machine, follow these steps.
- Python 3: Make sure you have Python 3 installed.
- Landscape2: You need to install the
landscape2CLI tool. You can find installation instructions here. The easiest way for macOS users is with Homebrew:Ubuntu/CentOS:brew install cncf/landscape2/landscape2
curl --proto '=https' --tlsv1.2 -LsSf \ https://github.com/cncf/landscape2/releases/download/v1.0.0/landscape2-installer.sh | sh
-
Clone the repository:
git clone https://github.com/your-username/FXView-landscape.git cd FXView-landscape -
Install Python dependencies:
python -m pip install --upgrade pip pip install -r requirements.txt
-
Generate the
landscape.ymlfile:python convert_images_to_svg.py python generate_landscape.py
This command reads from the
/companyand/logosdirectories and creates thelandscape.ymlfile. -
Build the static website:
landscape2 build \ --data-file landscape.yml \ --settings-file settings.yml \ --logos-path ./logos/ \ --output-dir buildThis will generate the static website in the
build/directory. -
Clean up auto-generated English abbreviations (Optional)
If your project contains Chinese descriptions or logos, run the
replace.pyscript to remove auto-generated English text from the built website.python replace.py
-
Serve the website locally:
landscape2 serve --landscape-dir build
The landscape will be available at
http://127.0.0.1:8000.
Deployment is handled automatically by a GitHub Actions workflow defined in .github/workflows/deploy.yml. When changes are merged from the landprovide branch to the main branch, the workflow will:
- Run the Python scripts to prepare the data and generate
landscape.yml. - Build the static site using
landscape2. - Build a Docker image containing the site.
- Push the Docker image to our container registry.
- ✨ This AI Landscape is a community-driven project. Your contributions are highly valued.*