
Security Fundamentals
Turtles, Clams, and Cyber Threat Actors: Shell Usage
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
chatgpt-fine-tuning
Advanced tools
Easily tune your models.
This package helps you programmatically generate your fine-tuning dataset in JSONL format. It is a wrapper of the chatgpt
npm package so you can use it the same way.
As documented in OpenAI's official documentation, training data is expected to follow the format:
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?"}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters."}]}
The way the package works is by using "tuners". Each sendMessage
call returns a tuner
object which you either approve or reject and fix.
Based on these actions, you will have a training file that reflects these decisions.
# npm
npm install chatgpt-fine-tuning
# yarn
yarn add chatgpt-fine-tuning
To use the SDK, you need to configure it with your API key. Here's a simple setup:
import ChatGptFineTuning from 'chatgpt-fine-tuning';
const outFile = 'fine-tuning-output.jsonl'; // required
const systemMessage = 'Marv is a factual chatbot that is also sarcastic.'; // required
const gpt4Api = new ChatGptFineTuning({
apiKey: process.env.GPT4_API_KEY || '', // required
systemMessage,
}, outFile)
tuner
Method | Parameters | Return Type | Description |
---|---|---|---|
approve | - | Promise<void> | Approves the current row for fine-tuning. |
reject | - | Promise<void> | Rejects the current row for fine-tuning. |
fix | userText: string , assistantText: string , log?: boolean | Promise<void> | Submits a correction for the current row, including the user and assistant text. Option to log details to file after each row. |
log | message: string | void | Logs a message to the output file. This operation is synchronous. |
Property | Type | Description |
---|---|---|
response | ChatMessage | Holds the current chat message that the tuner will operate on. |
const tuner = await gpt4Api.sendMessage("What is the capital of France?");
// programmatic verification
if (tuner.response.text.includes("Paris")) {
tuner.approve();
} else {
// marks assistant response with a weight of 0
tuner.reject();
// inserts the user response and a correct assistant response with a weight of 1
tuner.fix("You did not provide the correct answer", "Paris");
}
tuner.log("Finished run")
ChatMessage
Name | Type | Description |
---|---|---|
id | string | Unique identifier for the chat message. |
text | string | The text content of the chat message. |
role | Role | The role of the message sender (e.g., user, assistant). |
name | string | The name of the sender. Optional. |
delta | string | Optional string that may contain additional information or changes made to the message. |
detail | openai.CreateChatCompletionResponse | CreateChatCompletionStreamResponse | Optional detailed response from OpenAI or a streaming response, providing further context or metadata about the chat message. |
parentMessageId | string | The ID of the parent message if this message is a reply or related to another message in the conversation. Optional. |
conversationId | string | The ID of the conversation this message belongs to. Optional. |
The API is the same as the chatgpt
package (reference).
Contributions, issues, and feature requests are welcome! Feel free to check issues page.
Give a ⭐️ if this project helped you!
Bitcoin: bc1qhp9havdzfzqr9mzdc3257txmegrpryhx3kdpyz
Strike: rodrigo
This project is MIT licensed.
FAQs
Easily tune your models.
The npm package chatgpt-fine-tuning receives a total of 6 weekly downloads. As such, chatgpt-fine-tuning popularity was classified as not popular.
We found that chatgpt-fine-tuning demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security Fundamentals
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Security News
At VulnCon 2025, NIST scrapped its NVD consortium plans, admitted it can't keep up with CVEs, and outlined automation efforts amid a mounting backlog.
Product
We redesigned our GitHub PR comments to deliver clear, actionable security insights without adding noise to your workflow.