Skip to main content

根据代码调用llm自动生成解析文档

Project description

CodeAskCLI

使用AI模型分析代码库并生成详细报告的命令行工具。参考了CodeAsk

功能

  • 生成项目总结和单文件分析
  • 将分析结果保存为易于阅读的Markdown文件
  • 命令行实现,方便集成到ci

使用

pipx install codeaskcli
codeaskcli --help

使用方法

基本使用示例:

python main.py /path/to/code --filter "lib/**.py,*.md,src/**" --api-key YOUR_API_KEY

使用环境变量提供API密钥

为了保护敏感信息,特别是在CI/CD环境下,建议通过环境变量提供API密钥:

# 设置环境变量
# OpenAI
export OPENAI_API_KEY=sk-your-api-key

# Anthropic Claude
export ANTHROPIC_API_KEY=sk-ant-your-key

# Azure OpenAI
export AZURE_OPENAI_API_KEY=your-azure-key

# Google Gemini
export GEMINI_API_KEY=your-gemini-key

# 然后不需要在命令行中提供API密钥
uv run main.py /path/to/code --filter "lib/**.py,*.md"

在Windows下,使用以下命令设置环境变量:

set OPENAI_API_KEY=sk-your-api-key

或者在PowerShell中:

$env:OPENAI_API_KEY = "sk-your-api-key"

配置文件

可以通过配置文件设置常用选项,以减少命令行参数。支持YAML、TOML和JSON格式。 示例配置文件(codeask.yaml):

# CodeAskCLI 配置文件示例
# 将此文件保存为项目目录下的 codeask.yaml 文件

# API相关配置
api:
  # AI服务提供商,可选: openai, anthropic, azure, gemini
  provider: openai
  
  # 模型名称
  # 对于OpenAI: gpt-3.5-turbo, gpt-4-turbo, gpt-4o 等
  # 对于Anthropic: claude-3-opus-20240229, claude-3-sonnet-20240229, claude-3-haiku-20240307 等
  # 对于Gemini: gemini-pro, gemini-ultra 等
  # 对于Azure: 由您的部署决定
  model: deepseek-reasoner
  
  # API参数设置
  temperature: 0.6      # 控制输出的随机性,0为最保守,1为最创造性
  max_tokens: 8000      # 生成文本的最大长度
  
  # 仅在开发环境使用,生产环境建议使用环境变量
  # 环境变量
  # openai: OPENAI_API_KEY
  # anthropic: ANTHROPIC_API_KEY
  # azure: AZURE_OPENAI_API_KEY
  # gemini: GEMINI_API_KEY

  api_key: sk-your-api-key-here
  
  # 自定义API基础URL (对于自托管或代理服务)
  base_url: https://api.deepseek.com/v1

  # Azure OpenAI特有配置
  # endpoint: https://your-resource.openai.azure.com
  # deployment: your-deployment-name
  # api_version: 2023-05-15

# 分析器配置
analyzer:
  # 并发处理文件数
  concurrency: 8
  
  # 输出文件路径,不设置则默认为项目目录下的.codeaskdata
  output_file: "./analysis_result"

# 文件过滤器,指定要分析的文件
filters:
  # 支持glob模式语法
  - "*.py"                # 所有Python文件
  - "*.js"                # 所有JavaScript文件
  - "!**/node_modules/**" # 排除node_modules目录
  - "!**/__pycache__/**"  # 排除__pycache__目录
  - "!**/venv/**"         # 排除虚拟环境目录
  - "!**/.*/**"           # 排除隐藏目录

# 提示词模板
templates:
  # 单页分析提示词
  single_page: |
    你是一个专业的代码分析助手,当用户提供代码文件时,请分析此代码文件在项目中的角色。假定用户对代码不熟悉,并希望快速了解项目的目的和实现方式。请按照以下结构化框架进行分析:
    1. 功能概述:用简明语言(100字以内)总结代码核心功能,描述代码实现目标、应用场景及主要模块,强调关键功能和用途。
    2. 列出该文件依赖的其他文件或模块。
    3. 代码结构分析:分析代码中关键函数、类和方法,简要说明它们的功能和作用;基于代码内容和结构,选择合适的 Mermaid 图表(流程图、时序图、类图或状态图)展示执行流程或模块关系,确保图表符合 Mermaid 语法。
      
  # 总结分析提示词
  summary: |
    基于各文件分析,生成项目结构分析报告:

    1. **项目架构概览**
       - 描述项目的主要模块和组件。
       - 提供项目的目录结构树形图。
       - 说明项目采用的架构设计模式(如MVC、MVVM等)。
       - 使用Mermaid图表展示项目的分层关系。

    2. **模块依赖分析**
       - 使用Mermaid图表展示模块间的依赖关系。
       - 简述每个关键模块的职责。

    请确保分析清晰易懂,并使用Mermaid图表来可视化项目结构和依赖关系。

  # 也可以通过文件路径指定提示词模板
  # single_page_file: "./templates/single_page_prompt.txt"
  # summary_file: "./templates/summary_prompt.txt"

支持的命令行参数

  • folder_path: 要分析的代码文件夹路径
  • --filter: 文件过滤器,指定要分析的文件范围,支持glob模式
  • --provider: AI服务提供商(openai, anthropic, azure, gemini)
  • --model: 使用的模型名称
  • --concurrency: 并发处理文件数
  • --output: 输出文件路径
  • --single-page-prompt: 单页分析提示词文件路径
  • --summary-prompt: 总结分析提示词文件路径

更多参数和详细说明请使用 --help 参数查看。

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codeaskcli-0.1.2.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codeaskcli-0.1.2-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file codeaskcli-0.1.2.tar.gz.

File metadata

  • Download URL: codeaskcli-0.1.2.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for codeaskcli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8f0bc24f0f16cc99e60756334ee286a7a3e968686980a1b51a2d89908b6040b3
MD5 e67b0bd83d672036835c3798fea8eb3f
BLAKE2b-256 abc0ca4bffbc93e3b0bad2ce53b2150c30891bd05656a57629ce9205fad0174d

See more details on using hashes here.

File details

Details for the file codeaskcli-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: codeaskcli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for codeaskcli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ebd606c8986d389b285fdd65cd1a15e113ace876081a6b85edb65f72b556b34
MD5 56ac00540f8128b40b52e04c281e847d
BLAKE2b-256 46e0c5002d06f6827a9a4373af9d3307cb62b1ce2466da8c9914e6f0044c4c97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page