python实现文件ai智能行级编辑示例代码
代码语言:python
所属分类:人工智能
代码描述:python实现文件ai智能行级编辑示例代码,通过ai返回文件的行操作json来一行行修复新增、删除文件代码内容
代码标签: python 文件 ai 智能 行级 编辑 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3 # -*- coding: utf-8 -* import os import json import asyncio from dotenv import load_dotenv import difflib # 导入用于生成差异的库 # FastAPI 相关的导入 from fastapi import FastAPI from fastapi.responses import HTMLResponse, StreamingResponse from pydantic import BaseModel from typing import List # 使用 OpenAI 的异步客户端 from openai import AsyncOpenAI # --- 1. 初始化和配置 --- load_dotenv() app = FastAPI() try: openai_client = AsyncOpenAI(api_key="sk-",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1") except KeyError: raise KeyError("API 密钥未设置!请在 .env 文件中设置 OPENAI_API_KEY。") TARGET_FILE_PATH = "sample_code.py" # 确保这个文件存在 # --- 2. Pydantic 数据模型 --- class EditRequest(BaseModel): user_request: str file_content: str # --- 3. HTML 模板 (已修复前端 fetch 逻辑) --- HTML_TEMPLATE = """ <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>AI 文件编辑器 (已修复)</title> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"> <style> :root { --bg-color: #1e1e3f; --sidebar-bg: #2a2a52; --main-bg: #161633; --text-color: #dcdce0; --accent-color: #ff79c6; --accent-light: #f1fa8c; --border-color: #44475a; --success-color: #50fa7b; --error-color: #ff5555; --font-mono: 'Fira Code', 'Consolas', 'Monaco', monospace; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: sans-serif; background-color: var(--bg-color); color: var(--text-color); display: flex; justify-content: center; align-items: center; height: 100vh; overflow: hidden; } #app { display: flex; width: 98vw; height: 95vh; max-width: 1600px; background-color: var(--sidebar-bg); border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.4); overflow: hidden; border: 1px solid var(--border-color); } .chat-panel { width: 35%; display: flex; flex-direction: column; border-right: 1px solid var(--border-color); } .chat-header { padding: 16px; border-bottom: 1px solid var(--border-color); font-size: 18px; font-weight: bold; } .chat-history { flex-grow: 1; padding: 16px; overflow-y: auto; } .message { display: flex; gap: 12px; margin-bottom: 20px; } .message.user { justify-content: flex-end; } .message .avatar { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .message.user .avatar { background: var(--accent-color); } .message.assistant .avatar { background: var(--success-color); color: #000; } .message .content { max-width: 85%; padding: 10px 14px; border-radius: 10px; line-height: 1.6; } .message.user .content { background: var(--accent-color); color: #000; } .message.assistant .content { background: var(--main-bg); } .message.assistant .content pre { background: #111; padding: 10px; border-radius: 6px; margin-top: 10px; white-space: pre-wrap; font-family: var(--font-mono); } .input-area { padding: 16px; border-top: 1px solid var(--border-color); } .input-wrapper { display: flex; gap: 10px; } .input-wrapper textarea { flex-grow: 1; background: var(--main-bg); borde.........完整代码请登录后点击上方下载按钮下载查看
网友评论0