传闻中的国产大模型文心一言:其代码能力真的不堪一击吗?
大模型开发/互助问答
- Prompt
- 大模型推理
2024.03.247595看过
引言:
在日常使用特定程序时,你是否因每次启动都需要手动输入繁琐的ak_key和sk_key而感到烦恼?现在,文心一言4.0将以其强大的代码能力,为你打造一款简化调用程序的神器!自动输入ak_key、sk_key,让你的使用成本大大降低!接下来,就让我们一起见证文心一言4.0的实力吧!
面对日常使用中频繁输入ak_key、sk_key的烦恼,你是否曾渴望有一款能够自动化完成这一过程的工具?现在,你的愿望即将实现!文心一言4.0将凭借其卓越的代码能力,为你量身打造一款简化调用程序的神器。
首先,文心一言4.0将深入分析你的使用场景和需求,明确需要自动化输入ak_key和sk_key的程序以及相应的输入方式。然后,它将运用其强大的编程能力,为你编写一段自动化脚本。这段脚本将能够模拟手动输入ak_key和sk_key的过程,让你在启动程序时无需再次输入,实现一键自动化操作。
在编写完成后,文心一言4.0还将对脚本进行严格的测试和优化,确保其在各种场景下都能稳定运行,为你提供流畅、高效的使用体验。同时,它还将根据你的实际需求,对脚本进行个性化定制,满足你的各种特殊需求。
下面请看通过和文心4.0的交互,完成日常遇到的实际需求,实际演示如下:
以下提问内容个人装一名纯小白,我只知道我想得到什么,但不知道怎么得到,通过交互后,让文心4.0将咱们想要的结果交付给咱们。
个人prompt:
您是一名win系统资深专家,你对该系统的各种使用完完全全了解。我想写一个Windows系统下的脚本,功能如下:功能1,启动脚本时,创建一个窗口,窗口中有两个输入框(第一个填ak key,第二个填sk key),以及一个确定按钮。功能2:,点击确定后,当输入框存在数据的情况下,将数据分别填入以下三引号中的示例脚本代码"""@echo offstart cmd /k "cd /d C:\Users\Administrator\Desktop\baidu\chat-pro\functions_windows_amd64 && functions -ak {your-ak-key} -sk {your-sk-key}" -port 8091"""
4.0回复:
要创建一个带有输入框和按钮的图形用户界面(GUI)并在点击按钮后执行特定的命令,您需要使用一种支持GUI编程的脚本语言,比如PowerShell、Python(使用Tkinter、PyQt等库)或者C#(使用Windows Forms或WPF)。批处理脚本(Batch)本身不支持创建GUI。
以下是一个使用Python和Tkinter库实现您所需功能的简单示例。请确保您已经安装了Python,并且Tkinter库也已经可用(它通常与Python一起安装)。
import tkinter as tkfrom tkinter import messageboximport subprocessdefrun_command():ak_key = ak_entry.get()sk_key = sk_entry.get()if ak_key and sk_key:# 构建要在新的CMD窗口中执行的命令字符串command = f'cd /d C:\\Users\\Administrator\\Desktop\\baidu\\chat-pro\\functions_windows_amd64 && functions -ak {ak_key} -sk {sk_key} -port 8091'# 使用subprocess启动一个新的CMD窗口并执行命令try:# 注意:这里使用start命令打开一个新的CMD窗口,并通过/c参数执行命令subprocess.run(f'start cmd /c "{command}"', shell=True, check=True)messagebox.showinfo("Success", "Command Executed Successfully!")except subprocess.CalledProcessError as e:messagebox.showerror("Error", f"Command Execution Failed: {e}")else:messagebox.showerror("Error", "Please fill in both AK and SK keys.")# 创建主窗口并设置大小root = tk.Tk()root.title("AK/SK Key Input")root.geometry("400x200") # 设置窗口宽为400像素,高为200像素# 创建标签和输入框ak_label = tk.Label(root, text="AK Key:")ak_label.pack(pady=10) # 添加一些垂直填充ak_entry = tk.Entry(root)ak_entry.pack()sk_label = tk.Label(root, text="SK Key:")sk_label.pack(pady=10) # 添加一些垂直填充sk_entry = tk.Entry(root)sk_entry.pack()# 创建确定按钮submit_button = tk.Button(root, text="确定", command=run_command)submit_button.pack(pady=20) # 添加一些垂直填充# 运行主循环root.mainloop()
将上述代码保存为.py文件,比如ak_sk_input.py,然后运行它。这将创建一个窗口,您可以在其中输入AK和SK密钥,然后点击确定按钮来执行命令。请确保将路径和命令修改为您的实际路径和命令。
其实按照上面的python代码,经过个人测试,以上代码就可以完美运行,且符合我的使用需求了,很丝滑。
然而,作为一个对细节有极高要求的人,我觉得当前的页面设计还不够精致,功能也还有进一步丰富和完善的空间,以便为用户带来更加便捷的使用体验。因此,我决定再次借助文心一言4.0的强大能力,对页面进行美化,并增添一些实用的新功能。接下来,就让我们一起期待文心一言4.0带来的精彩改变,继续进入干货演示环节,看看它将如何助力我们打造更加出色、用户友好的页面吧!
个人prompt:增加新的功能:
你是一名python代码助手,使用上面的代码已经正常跑通了!非常棒!接下来,我希望基于以上代码,不改变原有功能,增加新的功能,我希望作为单独的功能函数。实现功能如下:"""1,当我启动python脚本,打开页面的时候,我希望在初始页面增加一个选择路径目录文件的选项。2,当我选择好目录文件之后,读取当前路径下以及当前路径目录下的,所有.exe文件(只读取当前路径的1,2级目录的.exe文件,不过多读取,避免读取异常),将读取到的.exe文件展示在初始页面。3,当我选择好展示在初始页面的.exe文件列表中的其中一项时,将这个选中的.exe文件路径填入原有的win脚本代码中"""
为了缩短篇幅,不凑字数,4.0输入暂不演示,继续上新的交互:
为了将整体页面的布局进行修饰,保持美观:
请您按照以下要求进行优化。优化要求如下:1,ak/sk输入框长度稍微长一点,输入框对应的提示要和输入框平行(如:ak_label = tk.Label(root, text="AK Key:") )。2,将路径浏览按钮,进行居中,并放到输入框的下面一些(Browse...)。3,将exe文件列表放到路径浏览按钮下面,并居中(如下相关:exe_label = tk.Label(root, text="Select EXE Directory:") )。4,将列表中的exe文件进行别名显示,但不能影响路径的正确选中。如原列表所示:"""1,C:/Users/Administrator/Desktop/baidu/chat-pro\chat-demo_windows_amd64\chat-demo.exe。2,C:/Users/Administrator/Desktop/baidu/chat-pro\chat-faq_windows_amd64\chat-faq.exe"""。调整列表如以下所示:"""1,chat-demo。2,chat-faq。
"""
经过上述prompt对代码的两次调整,激动人心的时刻到了,亲测可用,完美符合我个人使用基本要求了。完整代码如下:
import tkinter as tkfrom tkinter import filedialog, Listbox, messageboximport osimport subprocess# 写上个人ak_key Sk_Key,这里作为初始值Ak_Key = "your_ak_key"Sk_Key = "your_sk_key"Port = 8091# 用于运行exe文件并附带所提供的AK、SK密钥的函数defrun_command(selected_exe):global Port# 对port进行自增Port +=1# 获取AK和SK密钥ak_key = ak_entry.get()sk_key = sk_entry.get()# AK、SK密钥和选中的exe文件都必需if ak_key and sk_key and selected_exe:# 构建启动命令command = f'cd /d "{os.path.dirname(selected_exe)}" && start "" "{os.path.basename(selected_exe)}" -ak {ak_key} -sk {sk_key} -port {Port}'try:# 执行命令subprocess.Popen(command, shell=True)# messagebox.showinfo("成功", "Command Executed successfully!")except Exception as e:# 如果命令失败,显示错误信息messagebox.showerror("异常", f"Command Execution Failed: {e}")else:ifnot ak_key ornot sk_key:messagebox.showerror("异常", "Please fill in both AK and SK keys.")ifnot selected_exe:messagebox.showerror("异常", "Please select an .exe file.")# 全局变量用于存储exe文件路径与别名的映射 --------------------exe_files_map = {}defbrowse_folder():folder_path = filedialog.askdirectory()if folder_path:global exe_files_mapexe_files_map.clear() # 清除旧的映射exe_files = find_exe_files(folder_path)exe_listbox.delete(0, tk.END)for exe_file in exe_files:filename = os.path.basename(exe_file) # 仅文件名alias = filename.replace('.exe', '')exe_listbox.insert(tk.END, alias) # 只插入别名exe_files_map[alias] = exe_file # 存储别名到完整路径的映射deffind_exe_files(folder_path):exe_files = []for root, dirs, files in os.walk(folder_path):level = root.replace(folder_path, '').count(os.sep)if level <= 3:for file in files:if file.lower().endswith('.exe'):exe_files.append(os.path.join(root, file))else:break# 只进入选定文件夹下的3级子文件夹return exe_filesdefon_exe_select(event):selected_alias = event.widget.curselection()if selected_alias:alias = event.widget.get(selected_alias)selected_exe_path = exe_files_map.get(alias) # 从映射中检索完整路径if selected_exe_path:exe_entry.delete(0, tk.END)exe_entry.insert(0, selected_exe_path)# 创建主窗口root = tk.Tk()root.title("AK/SK Key Input with EXE Selector")root.geometry("550x450") # Adjusted window size to fit new content better# 创建AK/SK输入框ak_label = tk.Label(root, text="AK Key:")ak_label.grid(row=0, column=0, sticky='w', pady=10, padx=10) # Anchor to the west (left)ak_entry = tk.Entry(root, width=50) # Increased widthak_entry.grid(row=0, column=1, columnspan=2, sticky='ew', pady=5, padx=60)ak_entry.insert(0, Ak_Key) # 初始化AKsk_label = tk.Label(root, text="SK Key:")sk_label.grid(row=1, column=0, sticky='w', pady=10, padx=10) # Anchor to the west (left)sk_entry = tk.Entry(root, width=50) # Increased widthsk_entry.grid(row=1, column=1, columnspan=2, sticky='ew', pady=5, padx=60)sk_entry.insert(0, Sk_Key) # 初始化AK Key为1# 创建用于选择exe文件的部分exe_frame = tk.Frame(root)exe_frame.grid(row=2, column=0, columnspan=3, pady=5, sticky='ew')exe_button = tk.Button(exe_frame, text="浏览...", command=browse_folder)exe_button.grid(row=0, column=0, sticky='w', pady=10, padx=10)exe_entry = tk.Entry(exe_frame, width=50)exe_entry.grid(row=0, column=1, sticky='ew',padx=60)exe_label = tk.Label(root, text="列表:")exe_label.grid(row=3, column=0, sticky='w', pady=10, padx=10)# 创建exe文件列表exe_listbox_frame = tk.Frame(root)exe_listbox_frame.grid(row=4, column=0, columnspan=3, pady=0, padx=10, sticky='ew')exe_listbox = tk.Listbox(exe_listbox_frame, width=70, height=10) # Increased width for aliasesexe_listbox.grid(row=0, column=0, sticky='ewns')exe_listbox.bind('<<ListboxSelect>>', on_exe_select)# 创建运行命令按钮run_button_frame = tk.Frame(root)run_button_frame.grid(row=5, column=0, columnspan=3, pady=10, sticky='ew')run_button = tk.Button(run_button_frame, text="确定", width=10, command=lambda: run_command(exe_entry.get()))run_button.grid(row=0, column=0, columnspan=2, padx=220)# 运行主循环,显示GUIroot.mainloop()
接下来测试 我们的测试python程序,在程序文件当前目录下,打开cmd窗口,执行命令如下:
pytest1.py
执行得到如下:
是吧,完美丝滑。
当我输入 ak_key, sk_key, 选中第一个路径的程序,点击确认,完美启动,如下图所示:
为了进一步减少使用成本,让完全不懂代码的用户也能点击使用,且有交互界面,还是需要一个win脚本,于是继续和文心4.0交互:
个人prompt:
帮我写一份简单的 win脚本。需要调用这个路径下的python文件。[C:\Users\Administrator\Desktop\baidu\chat-pro]
4.0回复,得到脚本内容如下:
@echo offcd /d C:\Users\Administrator\Desktop\baidu\chat-propy test1.py
如此我就实现了一键点击,即可开启程序的使用。
接下来,咱们进行一个实践总结:
总结:
在数字化时代,代码已成为驱动世界的重要力量。而在这个领域中,文心一言4.0以其出色的代码应用能力,为我们展现了一个全新的编程世界。
从第一次的prompt引导中,我们就已经见证了文心一言4.0的强大实力。它不仅能够迅速理解我们的代码需求,更能以高效、准确的方式生成所需的代码片段。这种能力在后续的多次prompt引导中得到了进一步的体现,无论是新增功能还是优化现有代码,文心一言4.0都能一次过,无需反复调试和修改。
这种卓越的代码应用能力,使得文心一言4.0成为了国产AI大模型中的佼佼者。正如百度老板李彦宏所言,未来人人都是程序员。而文心一言4.0正是实现这一愿景的重要工具。通过简单的自然语言引导,它就能将我们的想法和需求转化为实际的代码,大大提高了编程效率,减轻了程序员的工作负担。
值得一提的是,文心一言4.0并不仅仅是一个代码生成工具。它更是一个智能的编程助手,能够在我们的编程过程中提供有价值的建议和帮助。这种智能化的编程体验,让我们能够更加专注于创新和解决问题,而不用担心繁琐的编码工作。
总的来说,文心一言4.0在代码应用上的表现堪称卓越。它不仅具备强大的代码生成能力,还能提供智能化的编程支持。这使得它成为了我们编程路上的得力助手,为我们带来了前所未有的编程体验。
如果你觉得我说的对你有所帮忙,麻烦点个小小赞加关注,感激各位。
评论