python+vue打造一个类似cursor的ai编程助手后端代码

代码语言:python

所属分类:其他

代码描述:python+vue打造一个类似cursor的ai编程助手后端代码

代码标签: python vue 打造 类似 cursor ai 编程 助手 后端 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
from pathlib import Path
from flask import Flask, jsonify, request, send_from_directory, Response
import os
import shutil
from openai import OpenAI

#前端代码:https://blog.bfw.wiki/user12308/17365091279276340051.html
#https://code.bfw.wiki/code/17365097178752150072.html
app = Flask(__name__)

# 根目录为当前脚本所在目录下的 file_manager 文件夹
BASE_DIR = os.path.join(os.getcwd(), 'file_manager')

# 如果根目录不存在,则创建
if not os.path.exists(BASE_DIR):
    os.makedirs(BASE_DIR)

@app.route('/')
def index():
    return send_from_directory('static', 'index.html')



# API configuration
API_URL = "https://api.deepseek.com"
API_KEY = "sk-apikey"#自己去申请
MAIN_MODEL = "deepseek-chat"

client = OpenAI(api_key=API_KEY, base_url=API_URL)

def _get_file_context(project,files) -> str:
        """获取项目目录中所有代码文件的内容作为上下文"""
        context = []
       

        if files:
            print(files)
            
            for file in files:
                file_path = file.get('path')
                #file_name = file.get('name')
                file_handle=Path(os.path.join(BASE_DIR, project,file_path))
                print(file_handle)
                try:
                    with open(file_handle, 'r', encoding='utf-8') as f:
                        content = f.read()
                        context.append(f"File: {file_path}\n{content}\n")
                except Exception as e:
                    print(f"Error reading file {file_path}: {e}")
        else:
           # 生成目录结构树

           
            project_dir = Path(os.path.join(BASE_DIR, project))
            print("all")
            def generate_tree(directory, prefix=""):
                tree = []
                entries = sorted(directory.iterdir())
                for index, entry in enumerate(entries):
                    if entry.is_dir():
                        tree.append(f"{prefix}├── {entry.name}/")
                        tree.extend(generate_tree(entry, prefix + "│   "))
                    elif entry.is_fi.........完整代码请登录后点击上方下载按钮下载查看

网友评论0