Created
April 28, 2025 08:18
-
-
Save lazydao/21fdb2635654bedfdf94422f4c7d70bb to your computer and use it in GitHub Desktop.
SnipDo插件
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import clr | |
clr.AddReference('System') | |
clr.AddReference('System.Web.Extensions') | |
from System import Uri | |
from System.Net import HttpWebRequest | |
from System.Text import Encoding | |
from System.IO import StreamReader | |
from System.Web.Script.Serialization import JavaScriptSerializer | |
import sys | |
DEFAULT_MAGNIFIER_PROMPT = u""" | |
[任务] | |
请用通俗、条理清晰的中文解释 <CONTENT>,帮助普通人快速理解其要义。 | |
要求 | |
1. 如有必要,可插入代码示例或示意图。 | |
2. 仅输出解释内容,不附加任何说明、标签或格式指令。 | |
3. 使用 markdown 格式。 | |
<CONTENT> | |
%s | |
<CONTENT> | |
""" % PLAIN_TEXT | |
DEFAULT_DICTIONARY_PROMPT = u""" | |
[任务] | |
翻译 <CONTENT>: | |
- 若为中文则译为 English | |
- 否则译为中文 | |
要求 | |
1. 保留原有段落、列表等排版,可轻微调整以便阅读。 | |
2. 全大写词保持不变;URL、邮箱、数字原样保留。 | |
3. 仅输出译文,不附带任何说明、标签或元数据。 | |
4. 使用 markdown 格式。 | |
<CONTENT> | |
%s | |
<CONTENT> | |
""" % PLAIN_TEXT | |
def call_with_dotnet(api_key, api_base, model, prompt): | |
url = Uri(api_base.rstrip('/') + "/chat/completions") | |
req = HttpWebRequest.Create(url) | |
req.Method = "POST" | |
req.ContentType = "application/json" | |
req.Headers["Authorization"] = "Bearer " + api_key | |
payload = { | |
"model": model, | |
"messages": [{"role": "user", "content": prompt}], | |
} | |
serializer = JavaScriptSerializer() | |
data = serializer.Serialize(payload) | |
bytes = Encoding.UTF8.GetBytes(data) | |
req.ContentLength = bytes.Length | |
reqStream = req.GetRequestStream() | |
reqStream.Write(bytes, 0, bytes.Length) | |
reqStream.Close() | |
try: | |
resp = req.GetResponse() | |
stream = resp.GetResponseStream() | |
reader = StreamReader(stream, Encoding.UTF8) | |
resp_data = reader.ReadToEnd() | |
reader.Close() | |
stream.Close() | |
resp.Close() | |
except Exception as e: | |
print(u"请求失败:%s" % e, file=sys.stderr) | |
sys.exit(1) | |
resp_json = serializer.DeserializeObject(resp_data) | |
return resp_json["choices"][0]["message"]["content"] | |
def main(): | |
api_key = "sk-sz***" | |
api_base = "https://api.siliconflow.cn/v1" | |
model = "deepseek-ai/DeepSeek-V3" | |
try: | |
output = call_with_dotnet(api_key, api_base, model, DEFAULT_MAGNIFIER_PROMPT) | |
except Exception as e: | |
print(u"请求失败:%s" % e, file=sys.stderr) | |
sys.exit(1) | |
print(output) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment