Code Monkey home page Code Monkey logo

pkupop-term-project's Introduction

程序设计实习 大作业

《程序设计实习》课程的大作业. 项目代号 "AI 记卡".

介绍

"AI 记卡" 是一款记忆卡片软件. 软件基于间隔重复算法, 自动安排一组卡片的学习时间, 帮助用户记忆. 此外, 软件可根据用户提供的关键词, 利用生成式语言模型, 自动生成记忆卡片.

构建

依赖项:

  • Qt 6.5,
  • CMake 3.19 以上,
  • 编译器: clang, GCC, MSVC 均可.

推荐使用 aqt 工具来安装依赖项.

  1. 安装 aqt: pip install aqtinstall
  2. 安装 Qt 框架:
    • Windows x64 平台, MinGW: aqt install-qt windows desktop 6.5.1 win64_mingw --archives qttools qtbase MinGW
    • Windows x64 平台, MSVC: aqt install-qt windows desktop 6.5.1 win64_msvc2019_64 --archives qttools qtbase
    • Mac 平台, clang: aqt install-qt mac desktop 6.5.1 clang_64 --archives qttools qtbase
  3. 安装构建工具:
    • 例如, 在 Windows 平台安装 CMake: aqt install-tool windows desktop tools_cmake

这些命令仅供参考, 应当根据您的环境进行调整. 此外, 可以在 aqt 网站上查找所需要的包和安装命令, 或使用 Qt 官方安装程序.

使用 Qt Creator 构建

  1. 在 "项目 > 构建和运行" (Projects > Build & Run) 中选择合适的构建套件.
  2. 构建项目.

使用 CMake 构建

  1. 配置: cmake -B build .
  2. 构建: cmake --build build

部署

  1. 切换到 exe 文件或 app 文件夹所在目录.
  2. 将 Qt 框架打包:
    • Windows 平台: windeployqt Aijika.exe
    • Mac 平台: macdeployqt AI\ 记卡.app -dmg
  3. 在 Windows 平台上, 可用 InnoSetup 制作安装程序. 详见本仓库 .github/workflows/windows.yml 中的流程.

单元测试

  1. 设置环境变量: export AIJIKA_TEST=1
  2. 配置, 并从 GitHub 下载 GoogleTest 库: cmake -B build .
  3. 构建: cmake --build build
  4. 运行测试: ./build/aijika_test

注意部分测试需访问 OpenAI 服务, 默认不会运行. 要运行这些测试:

  1. 设置环境变量 OPENAI_BASE_URLOPENAI_API_KEY (可选).
  2. 运行测试: ./build/aijika_test --gtest_also_run_disabled_tests

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.