【大模型应用】小白借助chatgpt开发谷歌插件

这篇具有很好参考价值的文章主要介绍了【大模型应用】小白借助chatgpt开发谷歌插件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大模型正缓慢地渗透进入我们的生活,尽管目前还没有现象级的产品应用,但它已足以让我痴迷于它,我对它能够提升程序员的生产效率笃定无疑。

本次我用一个下午做了一次尝试,使用大模型帮助我开发一个谷歌插件。开发之前,我对谷歌插件的认识仅限于知道如何安装和删除插件。

我想开发一个谷歌插件,功能如下:
1. 通过快捷键FY触发弹窗
2. 弹窗中有两个tab,一个是翻译,一个是函数命名
3. 翻译tab的功能是我输入英文自动转换为中午呢、我输入中文则自动转换为英文
4. 函数命名tab则可以根据我输入的描述,自动生成5个对应的代码命名

以上功能我需要借助大模型实现,帮我调用openAI的接口。请首先提供完整的思路给我

当输入上述文案时,chatgpt会回复完整的思路,参考思路后可让其提供代码

请根据上述的思路,给我完整的代码,并给我注释

大模型给我的回复是

首先,我们需要在manifest.json文件中定义插件的基本信息和权限:
{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0",
  "permissions": ["storage"],
  "host_permissions": ["<all_urls>"],
  "action": {
    "default_popup": "popup.html",
    "default_icon": {
      "16": "images/icon16.png",
      "48": "images/icon48.png",
      "128": "images/icon128.png"
    }
  },
  "background": {
    "service_worker": "background.js"
  },
  "commands": {
    "_execute_action": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "mac": "MacCtrl+Shift+Y"
      },
      "description": "Opens popup"
    }
  }
}




然后,我们需要在background.js文件中监听快捷键事件:
chrome.commands.onCommand.addListener(function(command) {
  if (command === "_execute_browser_action") {
    chrome.browserAction.openPopup();
  }
});


接下来,我们需要在popup.html文件中定义弹窗的界面:
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="popup.css">
</head>
<body>
  <div id="tab" class="tab">
    <button class="tablinks" onclick="openTab(event, 'Translate')">Translate</button>
    <button class="tablinks" onclick="openTab(event, 'FunctionName')">Function Name</button>
  </div>

  <div id="Translate" class="tabcontent">
    <textarea id="inputTranslate" placeholder="Enter text..."></textarea>
    <button id="btnTranslate">Translate</button>
    <p id="outputTranslate"></p>
  </div>

  <div id="FunctionName" class="tabcontent">
    <textarea id="inputFunctionName" placeholder="Enter description..."></textarea>
    <button id="btnFunctionName">Generate Function Name</button>
    <p id="outputFunctionName"></p>
  </div>

  <script src="popup.js"></script>
</body>
</html>


在popup.css文件中定义弹窗的样式:
/* Style the tab */
.tab {
  overflow: hidden;
  border: 1px solid #ccc;
  background-color: #f1f1f1;
}

/* Style the buttons inside the tab */
.tab button {
  background-color: inherit;
  float: left;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 14px 16px;
  transition: 0.3s;
}

/* Change background color of buttons on hover */
.tab button:hover {
  background-color: #ddd;
}

/* Create an active/current tablink class */
.tab button.active {
  background-color: #ccc;
}

/* Style the tab content */
.tabcontent {
  display: none;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-top: none;
}
最后,我们需要在popup.js文件中实现弹窗的功能:
// Open the specified tab
function openTab(evt, tabName) {
  // Get all elements with class="tabcontent" and hide them
  var tabcontent = document.getElementsByClassName("tabcontent");
  for (var i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }

  // Get all elements with class="tablinks" and remove the class "active"
  var tablinks = document.getElementsByClassName("tablinks");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }

  // Show the current tab, and add an "active" class to the button that opened the tab
  document.getElementById(tabName).style.display = "block";
  evt.currentTarget.className += " active";
}

// Call the Google Translate API
function translate(text) {
  // TODO: Implement this function
}

// Call the OpenAI API
function generateFunctionName(description) {
  // TODO: Implement this function
}

// Add event listeners to the buttons
document.getElementById("btnTranslate").addEventListener("click", function() {
  var text = document.getElementById("inputTranslate").value;
  translate(text);
});

document.getElementById("btnFunctionName").addEventListener("click", function() {
  var description = document.getElementById("inputFunctionName").value;
  generateFunctionName(description);
});

当我得到上述的回复后,我就在本地新建一个目录,并按照chatgpt给的命名创建文件、粘贴内容。
在谷歌浏览器中选择该目录插件后,触发该插件出现报错,我将报错信息发送给chatgpt:

出现报错如下:
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.

   <button class="tablinks" onclick="openTab(event, 'Translate')">Translate</button>

chatgpt立马纠正自己的错误并给出下面的回复:

你需要将新的事件监听器代码添加到popup.js文件中,并确保你的HTML元素有对应的ID。下面是整合后的popup.js文件的完整代码:
// Open the specified tab
function openTab(evt, tabName) {
  // Get all elements with class="tabcontent" and hide them
  var tabcontent = document.getElementsByClassName("tabcontent");
  for (var i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }

  // Get all elements with class="tablinks" and remove the class "active"
  var tablinks = document.getElementsByClassName("tablinks");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }

  // Show the current tab, and add an "active" class to the button that opened the tab
  document.getElementById(tabName).style.display = "block";
  evt.currentTarget.className += " active";
}

// Call the Google Translate API
function translate(text) {
  // TODO: Implement this function
}

// Call the OpenAI API
function generateFunctionName(description) {
  // TODO: Implement this function
}

// Add event listeners to the buttons when the DOM is fully loaded
document.addEventListener('DOMContentLoaded', function () {
  // Event listeners for tab buttons
  var translateTab = document.getElementById('translateTab');
  var functionNameTab = document.getElementById('functionNameTab');

  if (translateTab) {
    translateTab.addEventListener('click', function(event) {
      openTab(event, 'Translate');
    });
  }

  if (functionNameTab) {
    functionNameTab.addEventListener('click', function(event) {
      openTab(event, 'FunctionName');
    });
  }

  // Event listeners for action buttons
  document.getElementById("btnTranslate").addEventListener("click", function() {
    var text = document.getElementById("inputTranslate").value;
    translate(text);
  });

  document.getElementById("btnFunctionName").addEventListener("click", function() {
    var description = document.getElementById("inputFunctionName").value;
    generateFunctionName(description);
  });
});
请注意,我在添加事件监听器之前添加了if语句来检查元素是否存在,以避免在元素不存在时尝试添加事件监听器导致的错误。

同时,确保你的HTML文件中的按钮元素有对应的ID,如下所示:
<button class="tablinks" id="translateTab">Translate</button>
<button class="tablinks" id="functionNameTab">Function Name</button>

因为我完全不懂前端代码,所以我只会把插件的报错告诉chatgpt,而chatgpt就会帮我解决问题。最终经过几轮的问答,我给该插件赋予了翻译功能(中译英、英译中)、生成函数名功能(调用文心大模型,调用国内的接口较快,也可改为调用openAI)。至此,我的插件第一步开发结束啦,后续继续完善。

总结

基于本插件,我感受到了chatgpt赋能的力量。对于我这样完全不懂前端代码的开发者,最终能够通过对话就把插件完成了,算是完成我一直以来的一个小愿望。相信不久的将来,我连复制粘贴代码都不需要了。感谢chatgpt,期待更强大的AI到来。

代码内容已分享出来啦。文章来源地址https://www.toymoban.com/news/detail-796292.html

到了这里,关于【大模型应用】小白借助chatgpt开发谷歌插件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ChatGPT案例】10大ChatGPT谷歌插件神器

    ChatGPT相信大家都用过,但是如何高效使用,并真正挖掘出ChatGPT的强大能力呢?关键之处就在于Prompts! 可是,编写prompts是一门熟能生巧的技术活,我们能不能一键拥有那些惊艳的prompts呢?答案就是Chrome插件! 本文将探讨前10个基于ChatGPT的Chrome扩展,帮助您提高生产力、语言

    2024年02月05日
    浏览(44)
  • 借助ChatGPT的神奇力量,解锁AI无限可能!

    🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:C++STL,感兴趣的小伙伴可以看看。 🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​ ⛱️万物从心起,心动则万物动🏄

    2024年02月08日
    浏览(45)
  • 15个借助AI,ChatGPT自动写代码工具

    整理了15个借助AI和ChatGPT辅助我们自动写代码的工具,整理到 15个借助AI,ChatGPT自动写代码工具 https://www.webhub123.com/#/home/detail?projectHashid=19072648ownerUserid=27786724 ​每个卡片为一个工具对应的网址,点击图片直达。可以点击右上角 + 一键将这15个网站收录保存到我的收藏,随时都

    2023年04月19日
    浏览(37)
  • 学习笔记|大模型优质Prompt开发与应用课(二)|第四节:大模型帮你写代码,小白也能做程序

    GT│飞桨开发者技术专家 研发资源持续投入是企业为了获取核心技术.提升竞争力而进行的必要投资,同时也是企业实现长期发展、保持核心竞争力的关键因素。 在大型企业当中,人力成本占研发投入通常超50%,互联网头部企业研发薪资通常在20k以上,可以看到技术性人才非

    2024年02月15日
    浏览(54)
  • Anthropic的Claude3和Open AI的ChatGPT以及谷歌的Gemini三大模型的区别以及如何注册升级Claude 3,GPT-4的使用体验,避免封号等

    最近几天Anthropic发布了Claude 3 系列的LLM大模型,这也太快了吧!而且 官方声称这个模型超越了当今的OpenAI的ChatGPT-4 模型以及谷歌的Gemini Ultra模型啊 。 现在Claude 3的Opus模型,可能有更大的影响。这个时候不知道Open AI是不是要准备发布GPT-4.5了。下面是Anthropic官方的一个数据分

    2024年03月12日
    浏览(51)
  • AI大模型引领未来智慧科研暨ChatGPT自然科学应用

    以ChatGPT、LLaMA、Gemini、DALL·E、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以 面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助阅读、文献

    2024年04月17日
    浏览(45)
  • QGIS二次开发六:VS不借助QT插件创建UI界面

    上一篇博客我们说了在VS中如何使用QT插件来创建UI界面,但是我们二次开发QGIS的第一篇博客就说了,最好使用OSGeo4W中自动下载的QT进行QGIS二次开发,这样兼容性是最好的,那么该如何在VS中不使用外部安装的QT以及QT的VS插件情况下进行UI界面的创建和使用呢? 如果你仔细看完

    2024年02月13日
    浏览(39)
  • 如何借助分布式存储 JuiceFS 加速 AI 模型训练

    传统的机器学习模型,数据集比较小,模型的算法也比较简单,使用单机存储,或者本地硬盘就足够了,像 JuiceFS 这样的分布式存储并不是必需品。 随着近几年深度学习的蓬勃发展,越来越多的团队开始遇到了单机存储的瓶颈,分布式存储在 AI 领域的重要性不断凸显。AI 团

    2023年04月26日
    浏览(42)
  • AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用

    原文链接:AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型(ChatGPT、LLaMA、Gemini、DALL·E、Midjourney、Stable Diffusion、星火大模型、文心一言、千问等

    2024年03月17日
    浏览(52)
  • 来了来了,我使用 ChatGPT 开发了一个 AI 应用

    ChatGpt 实在太火爆了,很多人在问我怎么使用 chatgpt 开发一个 AI 应用程序。这不就来了吗~ 你所需要准备的一个OpenAI 的密钥和一点点代码来发送提示并返回结果,例如下面这段代码: 就靠这段代码,你现在就可以开始用它做出不可思议的东西了!😎 使用AI执行命令的基本结

    2024年02月01日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包