GROQ API를 활용하여 내용 생성 스킨 정보
게시판 GROQ API를 활용하여 내용 생성 스킨
첨부파일
본문
안녕하세요...
미니님a 입니다.
처음에 공개하려던 내용은 chat gpt 를 활용하여, 내용 생성이였습니다.
하지만, 이는 유료 서비스라 무료로 공개된 제품으로 변경 작업을 진행 하였습니다.
먼저 api key 발급이 필요합니다.
아래 링크에서 로그인 이후 키 발급 해주세요
발급이 성공되었다면 카피 버튼을 통해 복사 하신 뒤 별도의 메모장 혹은 별도로 보관하시길 바랍니다.
업로드 된 파일(basic_chatgpt.zip)을 다운로드 받아 압축 해제 해주세요
압축 해제 시 다음 구조를 가지고 있습니다.
해당 폴더에서 groq_api.php 파일을 열어주세요
21번 라인에 주석으로 키 등록하라고 되어있습니다.
거기에 위 복사한 키를 붙혀 넣어주세요
$api_key = 'API KEY 입력'; // API 키 입력
그리고 저장 하신 뒤 관리자에서 스킨을 변경 하시면 됩니다.
api 에러 발생 시 해당 폴더 내 error.log 파일이 자동 생성 됩니다.
실제 구동 영상은 아래와 같습니다.
고맙습니다.
17
댓글 전체

감사 합니다.

@들레아빠 항상 먼저 댓글 남겨주시고 고맙습니다.


귀한자료 감사합니다^^

@미키손 고맙습니다!!

오 감사합니다~~

@DawnDew 고맙습니다.

감사합니다 ^^

@민트다이어리 고맙습니다.
아미나에서도 사용이 가능할까요?
감사합니다

@풍운 네 사용 가능합니다. 다만 직접 적용해보니 사용은 되는데 기본적인 CSS 자체가 깨지네요 동작은 합니다.
디자인은 수정하셔야 겠습니다.
아 그렇군요, 감사합니다


@yangah 고맙습니다!!!
감사합니다...

@철완아톰 고맙습니다!!!

감사합니다.

@써맨 고맙습니다!

감사합니다 ^^

감사합니다.

사용해보니 전 에러가 나네요..
서버 통신 중 에러가 생겼답니다.
console 확인해보니
write.php?bo_table=qa:717Ajax error:
- Object
- error: SyntaxError: Unexpected token '<', "<br /> <b>"... is not valid JSON at JSON.parse (<anonymous>) at n.parseJSON (https://atlanta.infinityfreeapp.com/js/jquery-1.12.4.min.js?ver=2304171:4:16646) at a.parseJSON (https://atlanta.infinityfreeapp.com/js/jquery-migrate-1.4.1.min.js?ver=2304171:2:3813) at Xb (https://atlanta.infinityfreeapp.com/js/jquery-1.12.4.min.js?ver=2304171:4:18959) at y (https://atlanta.infinityfreeapp.com/js/jquery-1.12.4.min.js?ver=2304171:4:22405) at XMLHttpRequest.c (https://atlanta.infinityfreeapp.com/js/jquery-1.12.4.min.js?ver=2304171:4:26925)
- status: "parsererror"
- xhr: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
- [[Prototype]]: Object
Ajax error: {xhr: {…}, status: 'parsererror', error: SyntaxError: Unexpected token '<', "<br />
<b>"... is not valid JSON
at JSON.parse (<anonymous>…}
이렇게 에러가 나서 api도 다시 새로 발급받아 시도해도 안되네요...
저만 이런 에러가 나나요?

write.skin.php에서 끝에있는 <script>~</script>에서 아래것을 참조하여 수정해 보세요.
var dhtml="<?php echo $is_dhtml_editor?>"; // 추가
//변경
if (dhtml) {
oEditors.getById["wr_content"].exec("SET_CONTENTS", [response.content.replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>")]);
} else {
$('textarea[name="wr_content"]').val(response.content);
}
좋은 자료 감사합니다.
그런데 뭐가 바뀐건지 저도 '서버 통신중 오류가 생겼습니다.'라고 나오네요.
error.log 보면
[09-Feb-2025 10:00:16 Asia/Seoul] Received POST data: Array
(
[title] => 그누보드란?
)
이런식으로 나오고요.

제 error.log도 궁금해서 열어보니 masahide님 처럼 제 error도 Received POST data: Array ...네요...
console도 보고 ajax error 같은데....

groq_api.php에서 아래부분이 맞는지 확인하세요.
include_once('../../../common.php'); // 그누보드 공통 파일 경로 수정
적으신것과 동일하게 되어 있습니다.

서버 통신 오류는 common.php의 경로가 틀린 경우입니다.
/skin/board/basic_chatgpt 이면 ../../../
/theme/basic/skin/board/basic_chatgpt 이면 ../../../../../
친절하신 답변 정말 감사합니다.
제가 스킨을 테마에 넣어서 그런거였군요.
알려주신대로 경로 수정했더니 잘 됩니다.
다시한번 감사 인사드립니다.

저도 이렇게 고치니 서버 통신 에러는 사라졌네요..
근데 내용생성을 누르면 에러는 없는데
생성중입니다 약간의 로딩후 페이지 그대로...
내용물이 생기질 않아요..
맨땅....ㅠ.ㅠ
editor를 jodit을 쓰고 있는데 이게 문제일까요?
cheditor5를 쓰면 게시물을 생성중이라며 무한루핑중 걸립니다.
error.log은
[10-Feb-2025 02:53:44 Asia/Seoul] Received POST data: Array
(
[title] => 하얼빈 동계올림픽
이렇게 나옵니다.

write.skin.php에서 끝에있는 <script>~</script>에서 아래것을 참조하여 수정해 보세요.
var dhtml="<?php echo $is_dhtml_editor?>"; // add
var cheditor="<?php echo $config['cf_editor']?>"; // add
if (typeof(ed_wr_content) != "undefined" && ed_wr_content.getById["wr_content"]) {
ed_wr_content.getById["wr_content"].exec("SET_CONTENTS", [response.content]);
} else {
$('textarea[name="wr_content"]').val(response.content);
} 이 부분을 아래와 교체
if (dhtml) {
if (typeof oEditors !== "undefined" && oEditors.getById["wr_content"]) {
// SmartEditor2
oEditors.getById["wr_content"].exec("SET_CONTENTS", [
response.content.replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>")
]);
} else if (cheditor === 'cheditor5') {
const editorIframe = document.querySelector("iframe.cheditor-editarea");
const iframeDoc = editorIframe.contentDocument;
iframeDoc.body.innerHTML = response.content.replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>");
} else if (typeof Jodit !== "undefined" && Jodit.instances["wr_content"]) {
// Jodit
Jodit.instances["wr_content"].value = response.content.replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>");
} else if (typeof tinymce !== "undefined" && tinymce.get("wr_content")) {
// TinyMCE
tinymce.get("wr_content").setContent(
response.content.replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<br>")
);
} else {
console.error("에디터를 찾을 수 없습니다.");
}
} else {
$('textarea[name="wr_content"]').val(response.content);
}

아....아주 잘 되네요...
감사합니다....SOLVED!!!

잘 된다니 제가 감사합니다.

멋지십니다 ^^

@두리삼촌v 고맙습니다.
감사합니다.

@김철용 고맙습니다.

@들레아빠 님 대신 답변 해주셔서 고맙습니다.
너무 잘 됩니다! 감사드립니다.

@오소피아 고맙습니다!
초보 궁금해서 질문드려요^^
용도가 궁금해요^^
공개 감사드립니다:)

@초록물고기 그냥 컨텐츠를 채워준다? 라는 느낌입니다
글쓰기 하는데 귀찮기도 하고, 뭔가 사람이 있어 보이게 컨텐츠를 채울 용도라 보시면되겠습니다
뭐 코드 질문해도 답변 줄꺼구요 ㅎㅎ
좋은 자료 감사합니다.
영어로 주제를 적어도 한국어로 내용이 작성되는데 언어설정을
하는데가 따로 있는지요?
감사합니다
--------------
한글만 입력하게 만들어 놓으셨네요
$title .= "오직 한글로만 내용을 작성해야 합니다 (영어,한자,한문,일본어 모두 제외), 글을 보기 쉽게 띄어쓰기 및 줄바꿈도 포함해야 합니다.";

@풍운 네 해당 내용은 수정하셔야 합니다. 프롬프트는 자유롭게 변경하실 수 있습니다.
$title 를 주석처리하면 다른 언어를 사용할 수 있는지요? 코드를 살펴봐도 이것 외에는 언어를 제약하는 것은 보이지 않아서요...감사합니다

저기 부분을 오직 영어로 작성 해달라고 바꾸시면 영어로 나올꺼에요 ( ) <== 이것도 변경
아...그렇군요...감사합니다
이게 프롬프트이군요...
summernote 라는 에디터를 사용하는데 여기서 사용이 가능하게 하려면 어떻게 하면 되는지요? 감사합니다
안되어서 지금은 jodit 에디터로 일단 바꾸었습니다.