网站首页 > 开源技术 正文
在经历了cursor的多次反复重新搭建项目的痛苦后,当我先基于bolt生成项目初始版本,再基于cursor做具体细化后,大约2小时内顺利拿到了自己想要的结果,再次记录下主要的过程,供同行参考。
- bolt注册,打开官网地址:https://bolt.new/
- 描述需求
【提示词】我想做一个类似上面的智能文档问答的web网站,希望采用llamaindex、PyPDF2、vue、openai、Chroma技术栈来实现,请基于此要求,帮我实现,界面效果参考附件图片
在这里我找了一个自己比较喜欢的文档对话参考站,截图后作为附件上传到了这个对话窗口,作为提示词的额外补充。同时由于我本身对文档智能对话有技术背景,所以我直接指定了适合企业级生产的技术栈来限定框架。
【TIPS】对于没有任何开发技术背景的朋友,不用自己设定技术栈,可以让他帮忙推荐最适合的技术栈,也可以拿到自己满意的结果
- 下载生成的代码
- cursor导入上述代码工程
cursor的安装注册可参考我的上一篇文章,有比较详细的安装注册步骤。
- 项目源码分析总结
【提示词】@Codebase 这是一个智能文档问答的web网站模板项目,请在项目根目录下创建 design.md 文件,并将该项目的目录结构和技术要点总结在这个文件中,方便后续我与你讨论需求时供你参考。
- 先尝试启动项目
按照他提供的启动步骤,一步步操作,如果有报错,可以将错误信息完整的发到聊天框,按照他给的修复方案执行即可。
【提示词】如何启动该项目
错误修复示范1:
(venv) PS D:\code\cursor_space\qa_chat_doc\backend> uvicorn main:app --reload
INFO: Will watch for changes in these directories: ['D:\\code\\cursor_space\\qa_chat_doc\\backend']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [15984] using WatchFiles
Process SpawnProcess-1:
Traceback (most recent call last):
File "E:\soft\anaconda3\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "E:\soft\anaconda3\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\_subprocess.py", line 78, in subprocess_started
target(sockets=sockets)
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\server.py", line 62, in run
return asyncio.run(self.serve(sockets=sockets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\soft\anaconda3\Lib\asyncio\runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "E:\soft\anaconda3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\soft\anaconda3\Lib\asyncio\base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\server.py", line 69, in serve
config.load()
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\config.py", line 458, in load
self.loaded_app = import_from_string(self.app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\importer.py", line 24, in import_from_string
raise exc from None
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\uvicorn\importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\soft\anaconda3\Lib\importlib\__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "D:\code\cursor_space\qa_chat_doc\backend\main.py", line 7, in <module>
from llama_index import VectorStoreIndex, SimpleDirectoryReader
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\__init__.py", line 24, in <module>
from llama_index.indices import (
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\indices\__init__.py", line 4, in <module>
from llama_index.indices.composability.graph import ComposableGraph
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\indices\composability\__init__.py", line 4, in <module>
from llama_index.indices.composability.graph import ComposableGraph
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\indices\composability\graph.py", line 7, in <module>
from llama_index.indices.base import BaseIndex
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\indices\base.py", line 6, in <module>
from llama_index.chat_engine.types import BaseChatEngine, ChatMode
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\chat_engine\__init__.py", line 1, in <module>
from llama_index.chat_engine.condense_plus_context import CondensePlusContextChatEngine
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\chat_engine\condense_plus_context.py", line 7, in <module>
from llama_index.chat_engine.types import (
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\chat_engine\types.py", line 17, in <module>
from llama_index.memory import BaseMemory
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\memory\__init__.py", line 1, in <module>
from llama_index.memory.chat_memory_buffer import ChatMemoryBuffer
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\memory\chat_memory_buffer.py", line 9, in <module>
from llama_index.storage.chat_store import BaseChatStore, SimpleChatStore
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\storage\__init__.py", line 3, in <module>
from llama_index.storage.storage_context import StorageContext
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\storage\storage_context.py", line 26, in <module>
from llama_index.vector_stores.simple import DEFAULT_PERSIST_FNAME as VECTOR_STORE_FNAME
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\vector_stores\__init__.py", line 31, in <module>
from llama_index.vector_stores.myscale import MyScaleVectorStore
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\vector_stores\myscale.py", line 10, in <module>
from llama_index.readers.myscale import (
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\readers\__init__.py", line 20, in <module>
from llama_index.readers.download import download_loader
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\readers\download.py", line 10, in <module>
from llama_index.download.module import (
File "D:\code\cursor_space\qa_chat_doc\backend\venv\Lib\site-packages\llama_index\download\module.py", line 12, in <module>
import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'
错误修复示范2:
【提示词】
@Codebase 上传完成后,我点击界面会导致pdf消失,而且我看uploads下面没有对应的pdf文件
- 大模型key申请
我使用的是openai的模型,由于网络问题,使用了代理站上购买的,链接地址为:https://api.juheai.top,之前也一直在用这个,感觉自己觉得还可以,其它的没怎么尝试过,大家也可以根据自己的渠道来选择。
- 替换项目模型秘钥
当前项目模型的秘钥配置是在.env文件中,根据个人的渠道修改即可。
- 最终界面效果
最后谈点自己的感受,这个是整个开发过程的大致步骤,总体来说还算顺利,使用ai来编程其实和自己编程最大的区别在于ai编程你要像一个教练,自己编程就是教练和学员融合一体的,整个过程80%的时间是进行bug修复,所以大家要有心理上的准备,刚开始肯定会碰到各种各样的问题,不要慌,你只要负责复制黏贴,具体修复交给ai,可以先从简单的2048、贪吃蛇小游戏开始,可以增强自己的信心。
猜你喜欢
- 2025-04-27 作为一个seoer,教你如何利用高级搜索指令
- 2025-04-27 Python 开源神器 GNE 实现新闻页面智能解析无广告,准确率 99%
- 2025-04-27 Python:使用docx2pdf将Word文档转换为PDF
- 2025-04-27 一些超实用搜索窍门,让你真正学会搜索
- 2025-04-27 最详细的 maven 教程,可以收藏
- 2025-04-27 不会写文档,叫什么高级程序员
- 2025-04-27 神技巧:你真的会用“百度搜索”吗?
- 2025-04-27 SITEFACTORY粘贴图片自动上传到服务器(JAVA版)
- 2025-04-27 SCI论文格式模板使用教程(1)从期刊官网下载manuscript模板
- 2025-04-27 百度高级检索小妙招
你 发表评论:
欢迎- 04-27谁是2020年最强Python库?年度Top10出炉
- 04-27基于uniapp开发的前端低代码平台附源码
- 04-27EasyCaching:让缓存更简单!
- 04-27兰亭集势建海外版微店
- 04-27获取流量的方法论,简单才有效
- 04-27微信官方跑去卖手机壳?48元你买不
- 04-27投入1.7万亿美元推进核武器现代化,美国干的这件事比贸易讹诈更危险!
- 04-27抓住毒枭儿子的墨西哥警察遭报复,停车场内被围堵射击155枪
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)