完成自动生成代码

This commit is contained in:
yuruo
2024-07-01 12:38:30 +08:00
parent 6c11f22df9
commit 3a3682e7bd
3 changed files with 11 additions and 9 deletions

View File

@@ -2,7 +2,8 @@ import { ProChat } from '@ant-design/pro-chat';
import { useStore } from '@renderer/store/useStore';
import useChat from '@renderer/hooks/useChat';
import { useTheme } from 'antd-style';
export default function Chat() {
export default function Chat(props: {id: string}) {
const {id} = props;
const setMessages = useStore(state=>state.setChatMessage)
const chatMessages = useStore(state=>state.chatMessages)
const {getResponse} = useChat()
@@ -20,7 +21,7 @@ export default function Chat() {
<div className='text-black'>Agent助手</div>
}
request={async (messages) => {
const response = await getResponse(messages)
const response = await getResponse(messages, id)
return response// 支持流式和非流式
}}
/>

View File

@@ -30,7 +30,7 @@ export default function CodeEditor(props: CodeEditorProps) {
padding: 0,
},
}}>
<Chat />
<Chat id={id}/>
</Drawer>
<CodeMirror

View File

@@ -3,11 +3,9 @@ import { requireAlignmentPrompt, programmerPrompt} from "./prompt";
import useOpenai from "./useOpenai";
export default ()=>{
const setCode = useStore(state=>state.setCode)
const setChatMessages = useStore(state=>state.setChatMessage)
const chatMessages = useStore(state=>state.chatMessages)
const getResponse=(chat_messages: Array<any>)=>{
// const setCode = useStore(state=>state.setCode)
const getResponse=(chat_messages: Array<any>, id:number)=>{
const messages = chat_messages.map((m) => {
return {
role: m.role,
@@ -21,15 +19,18 @@ export default ()=>{
});
const response = useOpenai(requireAlignmentPrompt(), messages, (allContent)=>{
const programmerCallBack = (allContent: string) => {
allContent = allContent.replace(/^```python/, "").replace(/^```/, "").replace(/```$/, "").trim()
setCode(allContent)
allContent = allContent.replace(/^```python/, ""). replace(/^```/, "").replace(/```$/, "").trim()
window.api.sql('update contents set content = @content where id = @id',
'update',
{content: allContent, id})
chatMessages.pop()
setChatMessages([...chatMessages, {
id: Date.now().toString(),
createAt: Date.now(),
updateAt: Date.now(),
role: "assistant",
content: "自动化代码生成成功,请在右侧查看代码"
content: "自动化代码生成成功"
}])
}