2025.10.11故事生成系统(项目规划与环境搭建)

第1天:项目规划与环境搭建

📋 项目概述

本项目旨在开发一个基于阿里云AI服务的多功能内容生成系统,集成文字生成、图片生成和语音合成三大核心功能。通过7天的系统化开发,构建一个功能完善、用户体验良好的AI内容创作平台。

🎯 第1天目标

主要任务:完成项目规划、环境搭建和基础框架搭建
核心需求:建立完整的开发环境,配置项目结构,确保所有依赖库正确安装

📁 项目结构规划

目录结构设计

AI内容生成系统/
├── docs/                    # 文档目录
│   ├── 7天开发计划_第1天.md
│   ├── 7天开发计划_第2天.md
│   └── ...
├── src/                     # 源代码目录
│   ├── core/               # 核心模块
│   │   ├── __init__.py
│   │   ├── aliyun_client.py
│   │   └── config.py
│   ├── services/           # 服务层
│   │   ├── text_service.py
│   │   ├── image_service.py
│   │   └── voice_service.py
│   ├── web/               # Web界面
│   │   ├── app.py
│   │   ├── templates/
│   │   └── static/
│   └── utils/             # 工具函数
├── tests/                 # 测试目录
├── requirements.txt       # Python依赖
├── .env                  # 环境变量
└── README.md            # 项目说明

🔧 环境搭建步骤

1. Python环境配置

  • Python版本:3.8+(推荐3.9或3.10)
  • 虚拟环境:使用venv创建隔离环境
  • 包管理:使用pip进行依赖管理

2. 依赖库安装

核心依赖库包括:

  • requests:HTTP请求库
  • flask:Web框架
  • python-dotenv:环境变量管理
  • pillow:图像处理
  • pydub:音频处理

3. 阿里云API配置

  • 配置API密钥和访问凭证
  • 设置服务端点URL
  • 验证API连接性

🛠️ 具体实施步骤

步骤1:创建项目目录

# 创建项目根目录
mkdir ai_content_system
cd ai_content_system

# 创建子目录结构
mkdir -p docs src/core src/services src/web/templates src/web/static tests

步骤2:设置Python虚拟环境

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate

步骤3:创建requirements.txt文件

requests>=2.28.0
flask>=2.3.0
python-dotenv>=1.0.0
pillow>=10.0.0
pydub>=0.25.1
click>=8.1.0
werkzeug>=2.3.0

步骤4:安装依赖

pip install -r requirements.txt

步骤5:配置环境变量

创建.env文件,配置阿里云API密钥:

### 环境变量配置 (.env)
```bash
# 阿里云百炼大模型API配置
ALIYUN_API_KEY=your-aliyun-api-key-here
ALIYUN_USER_NAME=your-aliyun-user-name-here

# 百炼平台SDK配置(AK/SK认证)
ALIYUN_ACCESS_KEY_ID=your-aliyun-access-key-id-here
ALIYUN_ACCESS_KEY_SECRET=your-aliyun-access-key-secret-here

# Flask配置
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=your-secret-key-here

# 项目配置
UPLOAD_FOLDER=./uploads
MAX_CONTENT_LENGTH=16 * 1024 * 1024

步骤6:创建基础配置文件

创建src/core/config.py:

import os

class Config:
    """应用配置类"""
    ALIYUN_API_KEY = os.getenv('ALIYUN_API_KEY')
    ALIYUN_USER_NAME = os.getenv('ALIYUN_USER_NAME')
    ALIYUN_ACCESS_KEY_ID = os.getenv('ALIYUN_ACCESS_KEY_ID')
    ALIYUN_ACCESS_KEY_SECRET = os.getenv('ALIYUN_ACCESS_KEY_SECRET')
    
    # API端点配置
    TEXT_GENERATION_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
    IMAGE_GENERATION_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis"
    SPEECH_SYNTHESIS_URL = "https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/tts"
    TOKEN_SERVICE_URL = "https://nls-meta.cn-shanghai.aliyuncs.com"
    
    # 语音合成配置
    SPEECH_APP_KEY = "your-aliyun-speech-app-key-here"
    
    # Flask配置
    SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key')
    UPLOAD_FOLDER = os.getenv('UPLOAD_FOLDER', './uploads')
    MAX_CONTENT_LENGTH = int(os.getenv('MAX_CONTENT_LENGTH', 16 * 1024 * 1024))

🧪 验证环境

测试Python环境

# test_environment.py
import sys
print(f"Python版本: {sys.version}")

# 测试关键库是否安装成功
try:
    import requests
    import flask
    from dotenv import load_dotenv
    print("✅ 所有依赖库安装成功")
except ImportError as e:
    print(f"❌ 依赖库安装失败: {e}")

测试API连接

创建简单的API连接测试:

# test_api_connection.py
import requests
from src.core.config import Config

def test_api_connection():
    """测试阿里云API连接性"""
    headers = {
        "Authorization": f"Bearer {Config.ALIYUN_API_KEY}",
        "Content-Type": "application/json"
    }
    
    try:
        response = requests.get(Config.TEXT_GENERATION_URL, headers=headers, timeout=10)
        print(f"API连接测试: {response.status_code}")
    except Exception as e:
        print(f"API连接失败: {e}")

### API测试代码
```python
import requests

# 测试文本生成API
def test_text_generation():
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {Config.ALIYUN_API_KEY}"
    }
    
    data = {
        "model": "qwen-turbo",
        "messages": [{"role": "user", "content": "写一个关于小兔子的故事"}]
    }
    
    response = requests.post(Config.TEXT_GENERATION_URL, json=data, headers=headers)
    return response.json()

if name == "main":
test_api_connection()

posted @ 2025-12-28 23:04  ysd666  阅读(13)  评论(0)    收藏  举报