{"id":396,"date":"2025-04-09T09:20:04","date_gmt":"2025-04-09T07:20:04","guid":{"rendered":"https:\/\/www.strona-internetowa.pl\/blog\/?p=396"},"modified":"2025-04-09T09:42:54","modified_gmt":"2025-04-09T07:42:54","slug":"ai-vibe-coding-i-inne-przepisy","status":"publish","type":"post","link":"https:\/\/www.strona-internetowa.pl\/blog\/ai-vibe-coding-i-inne-przepisy\/","title":{"rendered":"AI, vibe coding i inne przepisy"},"content":{"rendered":"\n<p>W szybko zmieniaj\u0105cym si\u0119 \u015bwiecie powstaj\u0105 nowe has\u0142a, typu vibe coding. W skr\u00f3cie jest to pisanie aplikacji, stron internetowych lub serwis\u00f3w internetowych z pomoc\u0105 sztucznej inteligencji, chocia\u017c ja wol\u0119 okre\u015blenie modeli j\u0119zykowych. W za\u0142o\u017ceniu siadamy przed komputerem, odpalamy ChatGPT lub inn\u0105 Ollam\u0119 i za pomoc\u0105 prostych prompt\u00f3w (zapyta\u0144) artyku\u0142ujemy ch\u0119\u0107 stworzenia cyfrowego dzie\u0142a. To co wypluje nam model, kopiujemy za pomoc\u0105 znanego ctrl+c ctrl+v, kompilujemy, od\u015bwie\u017camy i voila! Dzie\u0142o gotowe.<\/p>\n\n\n\n<p>Przyznaj\u0119 bez bicia, \u017ce zapytanie lokalnego AI, gdy nie pami\u0119tam sk\u0142adni jest du\u017co szybsze ni\u017c wertowanie internetu lub przeczesywanie StackOverflow, aczkolwiek kopiowanie wynik\u00f3w bez analizy mija si\u0119 z celem.<\/p>\n\n\n\n<p>Lokalnie mam zainstalowan\u0105 Ollam\u0119 w wersji 3.2 i da\u0142em jej proste zadanie &#8211; wyplu\u0107 kod, kt\u00f3ry po\u0142\u0105czy si\u0119 z API WordPressa i wypluje nam 3 najnowsze posty w \u015brodowisku Angular.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { Component, OnInit } from '@angular\/core';\nimport axios from 'axios';\n\n@Component({\n  selector: 'app-wordpress-api',\n  templateUrl: '.\/wordpress-api.component.html',\n  styleUrls: &#91;'.\/wordpress-api.component.css']\n})\nexport class WordPressApiComponent implements OnInit {\n\n  posts = &#91;];\n\n  constructor(private http: HttpClient) { }\n\n  ngOnInit(): void {\n    this.getLatestPosts();\n  }\n\n  getLatestPosts(): void {\n    const apiUrl = 'https:\/\/yourwordpresssite.com\/wp-json\/wp\/v2\/posts'; \/\/\nreplace with your WordPress site URL\n    const params = {\n      per_page: 3,\n      post_type: 'post',\n      order: 'desc'\n    };\n\n    this.http.get(apiUrl, { params })\n      .subscribe(response => {\n        this.posts = response.data;\n      });\n  }\n\n}<\/code><\/pre>\n\n\n\n<p>Proste, dzia\u0142a, robimy! No i napotkamy b\u0142\u0105d. Od razu mnie tkn\u0119\u0142o, \u017ce importujemy axios, a nigdy go nie u\u017cywamy. Na szcz\u0119\u015bcie Ollama opisuje nam co robi kod, czytamy.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li>We import the <code>HttpClient<\/code> module and create a service to make HTTP<br>requests.<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<p>Mamy nie\u015bcis\u0142o\u015b\u0107 w tym temacie. Importujemy axios, u\u017cywamy HttpClient, ale go nie importujemy. Brzmi logicznie. Zapyta\u0142em wi\u0119c szanownego dlaczego u\u017cy\u0142 axios.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>In the example code I provided, I used <code>HttpClient<\/code> instead of <code>axios<\/code> because it&#8217;s the recommended way to make HTTP requests in an Angular application.<\/p>\n<\/blockquote>\n\n\n\n<p>No i dalej nie ma to sensu, wi\u0119c pytamy dalej &#8211; dlaczego zaimportowa\u0142e\u015b axios, a nigdy go nie u\u017cy\u0142e\u015b?<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I should have used the <code>HttpClient<\/code> module directly to make the HTTP request, instead of importing <code>axios<\/code>.<\/p>\n\n\n\n<p>In my previous response, I made a mistake by using <code>axios<\/code> as an example. To be consistent with the Angular framework, I should have used the <code>HttpClient<\/code> module.<\/p>\n<\/blockquote>\n\n\n\n<p>Model przyzna\u0142 si\u0119 nam do b\u0142\u0119du, wyplu\u0142 poprawiony kod, dzia\u0142a. Na obecn\u0105 chwil\u0119 czynnik ludzi nie wydaje si\u0119 by\u0107 zagro\u017cony. O ile prost\u0105 aplikacj\u0119 czy stron\u0119 internetow\u0105 jeste\u015bmy w stanie stworzy\u0107 od zera za pomoc\u0105 prostych promt\u00f3w, o tyle nie widz\u0119 analizy i kontynuacji za pomoc\u0105 AI w tak zwanym &#8222;legacy code&#8221;, czyli tym co dzia\u0142a i lepiej nie rusza\u0107, \u017ceby nie zmarnowa\u0107 roku \u017cycia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { HttpClient } from '@angular\/common\/http';<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>W szybko zmieniaj\u0105cym si\u0119 \u015bwiecie powstaj\u0105 nowe has\u0142a, typu vibe coding. W skr\u00f3cie jest to pisanie aplikacji, stron internetowych lub serwis\u00f3w internetowych z pomoc\u0105 sztucznej inteligencji, chocia\u017c ja wol\u0119 okre\u015blenie modeli j\u0119zykowych. W za\u0142o\u017ceniu siadamy przed komputerem, odpalamy ChatGPT lub inn\u0105 Ollam\u0119 i za pomoc\u0105 prostych prompt\u00f3w (zapyta\u0144) artyku\u0142ujemy ch\u0119\u0107 stworzenia cyfrowego dzie\u0142a. To co&hellip;<\/p>\n","protected":false},"author":1,"featured_media":397,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,17],"tags":[],"class_list":["post-396","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programowanie","category-sztuczna-inteligencja-ai"],"_links":{"self":[{"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/posts\/396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/comments?post=396"}],"version-history":[{"count":2,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/posts\/396\/revisions"}],"predecessor-version":[{"id":400,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/posts\/396\/revisions\/400"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/media\/397"}],"wp:attachment":[{"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/media?parent=396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/categories?post=396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strona-internetowa.pl\/blog\/wp-json\/wp\/v2\/tags?post=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}