備忘錄_20160105(定位)
修改
回首頁
程式 2025-03-24 17:03:53 1742807033 100
ollama,從前端的 javascript 執行
ollama,從前端的 javascript 執行
(注意,在 ollama 那一台機器上,要設定過 OLLAMA_ORIGINS=*,才不會被 CORS 規則給限制了。)
<script>
// 執行函式 - 注意同源政策(CORS)的限制!
window.onload=async function()
{
var strUrl="http://192.168.0.99:11434/api/generate";
var strModel="llama3.1";
var strPrompt="請幫我說明一下下面的敘述。\n\n佛以此願行。與眾生莊嚴四種淨土。\n又以此願行。莊嚴成一句洪名。 ";
var oJsonInput={ model: strModel, prompt: strPrompt, stream: false };
// 方法一
fetchOllamaResponseAsync(strUrl, oJsonInput);
// 方法二
await fetchOllamaResponseSync(strUrl, oJsonInput);
}
function fetchOllamaResponseAsync(strUrl, oJsonInput)
{
console.log("開始執行非同步方法1!");
fetch(
strUrl,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(oJsonInput)
}
)
.then(oResponse => oResponse.json())
.then(oJson => console.log('1:',oJson.response))
.catch(oError => console.error(oError));
}
async function fetchOllamaResponseSync(strUrl, oJsonInput)
{
console.log("開始執行同步方法2!");
try
{
const oResponse=await fetch(
strUrl,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(oJsonInput)
}
);
if(!oResponse.ok)
{
throw new Error(`HTTP error! Status: ${oResponse.status}`);
}
const oJson=await oResponse.json();
console.log('2:',oJson.response); // 取得完整的回應內容
}
catch(oError)
{
console.error("Error fetching Ollama response:", oError);
}
}
</script>