update: apikey dan navigation
parent
183a156686
commit
e728c4995b
|
|
@ -823,10 +823,10 @@ namespace eSPJ.Controllers.SpjDriverUpstController
|
|||
return BadRequest(new { success = false, message = "Ukuran foto terlalu besar. Maksimal 5MB." });
|
||||
}
|
||||
|
||||
var apiKey = _configuration["OpenRouter:OCRkey"];
|
||||
var apiKey = _configuration["9Router:OCRkey"];
|
||||
if (string.IsNullOrWhiteSpace(apiKey))
|
||||
{
|
||||
return StatusCode(500, new { success = false, message = "OpenRouter API key belum diset." });
|
||||
return StatusCode(500, new { success = false, message = "9Router API key belum diset." });
|
||||
}
|
||||
|
||||
byte[] fileBytes;
|
||||
|
|
@ -843,7 +843,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController
|
|||
|
||||
var payload = new
|
||||
{
|
||||
model = "openai/gpt-5-image-mini",
|
||||
model = "image-combo",
|
||||
messages = new object[]
|
||||
{
|
||||
new
|
||||
|
|
@ -854,14 +854,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController
|
|||
new
|
||||
{
|
||||
type = "text",
|
||||
text = @"
|
||||
Baca angka pada display timbangan digital dari gambar ini.
|
||||
Fokus hanya pada digit display, abaikan refleksi, cahaya merah, dan teks lain.
|
||||
Keluarkan tepat satu baris angka saja.
|
||||
Format output wajib NNN,NN (gunakan koma sebagai desimal dua digit).
|
||||
Jika tidak yakin atau angka tidak terbaca, keluarkan 0,00.
|
||||
Jangan tambahkan kata, kalimat, atau simbol lain.
|
||||
"
|
||||
text = @"Baca angka pada display timbangan digital dari gambar ini. Fokus hanya pada digit display, abaikan refleksi, cahaya merah, dan teks lain. Keluarkan tepat satu baris angka saja. Format output wajib NNN,NN (gunakan koma sebagai desimal dua digit). Jika tidak yakin atau angka tidak terbaca, keluarkan 0,00. Jangan tambahkan kata, kalimat, atau simbol lain."
|
||||
},
|
||||
new
|
||||
{
|
||||
|
|
@ -875,7 +868,7 @@ namespace eSPJ.Controllers.SpjDriverUpstController
|
|||
|
||||
var json = JsonSerializer.Serialize(payload);
|
||||
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, "https://openrouter.ai/api/v1/chat/completions");
|
||||
var request = new HttpRequestMessage(HttpMethod.Post, "http://10.50.50.61:20128/v1/chat/completions");
|
||||
request.Headers.TryAddWithoutValidation("Authorization", $"Bearer {apiKey}");
|
||||
request.Headers.TryAddWithoutValidation("Accept", "application/json");
|
||||
request.Headers.TryAddWithoutValidation("HTTP-Referer", "https://pesapakawan.dinaslhdki.id");
|
||||
|
|
|
|||
|
|
@ -29,15 +29,25 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="absolute -top-4 left-1/2 transform -translate-x-1/2">
|
||||
<a href="@Url.Action("Index", "Submit")" id="odoBtn" class="hover:cursor-pointer w-14 h-14 bg-upst rounded-full shadow-xl flex items-center justify-center transition-all duration-300 hover:scale-110 hover:rotate-6 border-4 border-white ring-2 ring-gray-200">
|
||||
<div class="absolute -top-4 left-1/2 transform -translate-x-1/2 flex flex-col items-center">
|
||||
|
||||
@* <a href="@Url.Action("Index", "Submit")"
|
||||
id="odoBtn"
|
||||
class="hover:cursor-pointer w-14 h-14 bg-blue-800 rounded-full shadow-xl flex items-center justify-center transition-all duration-300 hover:scale-110 hover:rotate-6 border-4 border-white ring-2 ring-gray-200">
|
||||
<i class="w-6 h-6 text-white" data-lucide="truck"></i>
|
||||
</a>
|
||||
<span class="bg-blue-800 px-2 py-1 rounded-full text-xs text-white font-medium mt-2 text-center">
|
||||
Upload Muatan
|
||||
</span> *@
|
||||
|
||||
@* <!-- ini untuk yang struk -->
|
||||
<a href="@Url.Action("Struk", "Submit")" id="strukBtn" class="hover:cursor-pointer w-14 h-14 bg-upst rounded-full shadow-xl flex items-center justify-center transition-all duration-300 hover:scale-110 hover:rotate-6 border-4 border-white ring-2 ring-orange-200">
|
||||
<!-- ini untuk yang struk -->
|
||||
<a href="@Url.Action("Struk", "Submit")" id="strukBtn" class="hover:cursor-pointer w-14 h-14 bg-green-700 rounded-full shadow-xl flex items-center justify-center transition-all duration-300 hover:scale-110 hover:rotate-6 border-4 border-white ring-2 ring-green-200">
|
||||
<i class="w-6 h-6 text-white" data-lucide="file-text"></i>
|
||||
</a> *@
|
||||
</a>
|
||||
<span class="bg-green-700 px-2 py-1 rounded-full text-xs text-white font-medium mt-2 text-center">
|
||||
Upload Struk
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
"OpenRouter": {
|
||||
"OCRkey": "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"
|
||||
},
|
||||
"9Router": {
|
||||
"OCRkey": "sk-50d5eecff8b7f7dc-6gwrum-312a1b07"
|
||||
},
|
||||
"Mapbox": {
|
||||
"Apikey": "pk.eyJ1IjoibWFyc3pheW4iLCJhIjoiY21sajUyMDd0MDllcjNncGdna3NzeTR4ZyJ9.Wvbh5J94j9sF_8KNPp9FYQ"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
||||
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
|
||||
@layer properties;
|
||||
@layer theme, base, components, utilities;
|
||||
@layer theme {
|
||||
|
|
@ -66,6 +66,7 @@
|
|||
--color-blue-600: oklch(54.6% 0.245 262.881);
|
||||
--color-blue-700: oklch(48.8% 0.243 264.376);
|
||||
--color-blue-800: oklch(42.4% 0.199 265.638);
|
||||
--color-blue-950: oklch(28.2% 0.091 267.935);
|
||||
--color-indigo-50: oklch(96.2% 0.018 272.314);
|
||||
--color-indigo-100: oklch(93% 0.034 272.788);
|
||||
--color-indigo-300: oklch(78.5% 0.115 274.713);
|
||||
|
|
@ -335,6 +336,15 @@
|
|||
.inset-x-4 {
|
||||
inset-inline: calc(var(--spacing) * 4);
|
||||
}
|
||||
.\!start {
|
||||
inset-inline-start: var(--spacing) !important;
|
||||
}
|
||||
.-start {
|
||||
inset-inline-start: calc(var(--spacing) * -1);
|
||||
}
|
||||
.start {
|
||||
inset-inline-start: var(--spacing);
|
||||
}
|
||||
.start-0 {
|
||||
inset-inline-start: calc(var(--spacing) * 0);
|
||||
}
|
||||
|
|
@ -344,6 +354,12 @@
|
|||
.start-100 {
|
||||
inset-inline-start: calc(var(--spacing) * 100);
|
||||
}
|
||||
.-end {
|
||||
inset-inline-end: calc(var(--spacing) * -1);
|
||||
}
|
||||
.end {
|
||||
inset-inline-end: var(--spacing);
|
||||
}
|
||||
.end-0 {
|
||||
inset-inline-end: calc(var(--spacing) * 0);
|
||||
}
|
||||
|
|
@ -366,7 +382,7 @@
|
|||
top: calc(var(--spacing) * 1);
|
||||
}
|
||||
.top-1\/2 {
|
||||
top: calc(1/2 * 100%);
|
||||
top: calc(1 / 2 * 100%);
|
||||
}
|
||||
.top-2 {
|
||||
top: calc(var(--spacing) * 2);
|
||||
|
|
@ -468,7 +484,7 @@
|
|||
left: calc(var(--spacing) * 0);
|
||||
}
|
||||
.left-1\/2 {
|
||||
left: calc(1/2 * 100%);
|
||||
left: calc(1 / 2 * 100%);
|
||||
}
|
||||
.left-2 {
|
||||
left: calc(var(--spacing) * 2);
|
||||
|
|
@ -993,13 +1009,13 @@
|
|||
width: calc(var(--spacing) * 1);
|
||||
}
|
||||
.w-1\/3 {
|
||||
width: calc(1/3 * 100%);
|
||||
width: calc(1 / 3 * 100%);
|
||||
}
|
||||
.w-2 {
|
||||
width: calc(var(--spacing) * 2);
|
||||
}
|
||||
.w-2\/3 {
|
||||
width: calc(2/3 * 100%);
|
||||
width: calc(2 / 3 * 100%);
|
||||
}
|
||||
.w-3 {
|
||||
width: calc(var(--spacing) * 3);
|
||||
|
|
@ -1146,7 +1162,7 @@
|
|||
border-collapse: collapse;
|
||||
}
|
||||
.-translate-x-1\/2 {
|
||||
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
|
||||
--tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
|
||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||
}
|
||||
.-translate-x-12 {
|
||||
|
|
@ -1158,7 +1174,7 @@
|
|||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||
}
|
||||
.-translate-y-1\/2 {
|
||||
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
||||
--tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
|
||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||
}
|
||||
.-translate-y-16 {
|
||||
|
|
@ -1725,6 +1741,9 @@
|
|||
.bg-blue-600 {
|
||||
background-color: var(--color-blue-600);
|
||||
}
|
||||
.bg-blue-800 {
|
||||
background-color: var(--color-blue-800);
|
||||
}
|
||||
.bg-cyan-400\/10 {
|
||||
background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent);
|
||||
@supports (color: color-mix(in lab, red, red)) {
|
||||
|
|
@ -1785,6 +1804,9 @@
|
|||
.bg-green-600 {
|
||||
background-color: var(--color-green-600);
|
||||
}
|
||||
.bg-green-700 {
|
||||
background-color: var(--color-green-700);
|
||||
}
|
||||
.bg-indigo-300 {
|
||||
background-color: var(--color-indigo-300);
|
||||
}
|
||||
|
|
@ -2828,6 +2850,9 @@
|
|||
.ring-green-100 {
|
||||
--tw-ring-color: var(--color-green-100);
|
||||
}
|
||||
.ring-green-200 {
|
||||
--tw-ring-color: var(--color-green-200);
|
||||
}
|
||||
.ring-orange-200 {
|
||||
--tw-ring-color: var(--color-orange-200);
|
||||
}
|
||||
|
|
@ -2861,10 +2886,6 @@
|
|||
--tw-drop-shadow: drop-shadow(var(--drop-shadow-lg));
|
||||
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
||||
}
|
||||
.grayscale {
|
||||
--tw-grayscale: grayscale(100%);
|
||||
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
||||
}
|
||||
.invert {
|
||||
--tw-invert: invert(100%);
|
||||
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
||||
|
|
|
|||
Loading…
Reference in New Issue