农民 发表于 2024-8-31 17:35:03

道听途说国产大模型文心一言代码能力很差?

场景:
针对个人的近来的一个日常使用场景的一个需求。启动特定的程序,需要输入ak_key,sk_key。每次启动都要输入,就很麻烦。我盼望有一个简化调用这个程序的东西。自动帮我输ak_key,sk_key简化我的使用成本。
于是,我寄盼望于通过文心一言4.0的代码能力帮我实现这一能力。减少我的使用成本。好戏开始了!
使用4.0帮我完成这个能力的详细过程。也是为了证明文心一言4.0的力气!
个人prompt:
   您是一名win系统资深专家,你对该系统的各种使用完完全全了解。我想写一个Windows系统下的脚本,功能如下:
功能1,启动脚本时,创建一个窗口,此中有两个输入框(第一个填ak key,第一个填sk key)和一个确定按钮。
功能2:,点击确定后,判断输入框,输入框存在数据的情况下,将数据分别填入以下三引号中的示例脚本代码
"""
@echo off
start 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 tk
from tkinter import messagebox
import subprocess

def run_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帮我调整,增加新的功能,并将页面修饰好看一点。直接上干货演示:
个人prompt:
 增加新的功能:
    你是一名python代码助手,使用上面的代码已经正常跑通了!非常棒!接下来,我盼望基于以上代码,不改变原有功能,增加新的功能,我盼望作为单独的功能函数。实现功能如下:
"""
1,当我启动python脚本,打开页面的时间,我盼望在初始页面增加一个选择路径目次文件的选项。
2,当我选择好目次文件之后,读取当前路径下以及当前路径目次下的,所有.exe文件(只读取当前路径的1,2级目次的.exe文件,不外多读取,避免读取非常),将读取到的.exe文件展示在初始页面。
3,当我选择好展示在初始页面的.exe文件列表中的此中一项时,将这个选中的.exe文件路径填入原有的win脚本代码中
"""
 将团体页面的布局举行修饰,保持美观:
   请您按照以下要求举行优化。优化要求如下:
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 tk
from tkinter import filedialog, Listbox, messagebox
import os
import subprocess

#写上个人ak_key Sk_Key,这里作为初始值
Ak_Key = "your_ak_key"   
Sk_Key = "your_sk_key"
Port = 8091


# 用于运行exe文件并附带所提供的AK、SK密钥的函数
def run_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:
      if not ak_key or not sk_key:
            messagebox.showerror("异常", "Please fill in both AK and SK keys.")
      if not selected_exe:
            messagebox.showerror("异常", "Please select an .exe file.")


# 全局变量用于存储exe文件路径与别名的映射--------------------
exe_files_map = {}

def browse_folder():
    folder_path = filedialog.askdirectory()
    if folder_path:
      global exe_files_map
      exe_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 = exe_file# 存储别名到完整路径的映射

def find_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_files

def on_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 width
ak_entry.grid(row=0, column=1, columnspan=2, sticky='ew', pady=5, padx=60)
ak_entry.insert(0, Ak_Key)# 初始化AK

sk_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 width
sk_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 aliases
exe_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)

# 运行主循环,显示GUI
root.mainloop() 接下来测试 我们的测试python程序,在程序文件当前目次下,打开cmd窗口,执行命令如下:
py test1.py  启动成功如图所示:
https://i-blog.csdnimg.cn/blog_migrate/5eb961456580c9b12ebbda2264610b63.png
当我输入 ak_key, sk_key, 选中第一个路径的程序,点击确认,完善启动,如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/afebdf4eef2f91be197e04958cd08c91.png
 为了进一步减少使用成本,让不懂代码的用户也能点击使用,且有交互界面,写了一个win脚本,也是一个选择:win脚本,进一步减轻小白用户的使用成本。
总结:
在数字化时代,代码已成为驱动天下的重要力量。而在这个范畴中,文心一言4.0以其出色的代码应用能力,为我们显现了一个全新的编程天下。
从第一次的prompt引导中,我们就已经见证了文心一言4.0的强大力大肆气。它不仅可以或许迅速明确我们的代码需求,更能以高效、准确的方式生成所需的代码片段。这种能力在后续的多次prompt引导中得到了进一步的表现,无论是新增功能照旧优化现有代码,文心一言4.0都能一次过,无需反复调试和修改。
这种卓越的代码应用能力,使得文心一言4.0成为了国产AI大模型中的佼佼者。正如百度老板李彦宏所言,未来人人都是程序员。而文心一言4.0正是实现这一愿景的重要工具。通过简朴的天然语言引导,它就能将我们的想法和需求转化为实际的代码,大大提高了编程效率,减轻了程序员的工作负担。
值得一提的是,文心一言4.0并不仅仅是一个代码生成工具。它更是一个智能的编程助手,可以或许在我们的编程过程中提供有价值的建媾和帮助。这种智能化的编程体验,让我们可以或许更加专注于创新息争决题目,而不用担心繁琐的编码工作。
总的来说,文心一言4.0在代码应用上的表现堪称卓越。它不仅具备强大的代码生成能力,还能提供智能化的编程支持。这使得它成为了我们编程路上的得力助手,为我们带来了前所未有的编程体验。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 道听途说国产大模型文心一言代码能力很差?