local API_KEY = "###"
local OPENAI_URL = "https://api.openai.com/v1/chat/completions"
local playerConversations = {}
AddEventHandler("lb-phone:messages:messageSent", function(message)
print("[DEBUG] Message received:", json.encode(message))
if not message or not message.sender or not message.recipient or not message.message then
print("[ERROR] Invalid message structure")
return
end
if message.recipient ~= "6269132517" then
print("[DEBUG] Message is not for 6269132517. Ignored.")
return
end
print("[INFO] Message sent to sketchy individual by:", message.sender)
if not playerConversations[message.sender] then
playerConversations[message.sender] = {
{ role = "system", content = "You are a shady dealer negotiating drug prices. Respond cryptically and suspiciously in a way that fits a roleplay scenario." }
}
end
table.insert(playerConversations[message.sender], { role = "user", content = message.message })
local requestData = {
model = "gpt-4o-mini",
messages = playerConversations[message.sender],
max_tokens = 100,
temperature = 0.7
}
print("[DEBUG] OpenAI Request Data:", json.encode(requestData))
PerformHttpRequest(OPENAI_URL, function(statusCode, response, headers)
print("[DEBUG] OpenAI Response Status Code:", statusCode)
print("[DEBUG] OpenAI Response Body:", response)
if statusCode == 200 then
local decodedResponse = json.decode(response)
if decodedResponse and decodedResponse.choices and decodedResponse.choices[1] then
local aiResponse = decodedResponse.choices[1].message.content
print("[INFO] Dealer Response:", aiResponse)
table.insert(playerConversations[message.sender], { role = "assistant", content = aiResponse })
local channelId = message.channelId
if type(channelId) == "number" then
channelId = tostring(channelId)
end
exports["lb-phone"]:SendMessage("6269132517", message.sender, aiResponse, nil, nil, channelId)
print("[INFO] AI Response sent successfully!")
else
print("[ERROR] Invalid response format from OpenAI")
end
else
print("[ERROR] Failed to reach OpenAI API, Status Code:", statusCode)
end
end, "POST", json.encode(requestData), {
["Authorization"] = "Bearer " .. API_KEY,
["Content-Type"] = "application/json"
})
end)
RegisterNetEvent("clearConversationHistory")
AddEventHandler("clearConversationHistory", function(playerId)
playerConversations[playerId] = nil
print("[INFO] Cleared conversation history for player:", playerId)
end)