Skip to content

Commit 7b1e661

Browse files
author
liuhuiqi.7
committed
feat(ark e2e): encrypt msg
Change-Id: Ifdbfbecd8d943dfef87bc376f221f1020ad7ee73
1 parent d7a22c6 commit 7b1e661

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

volcenginesdkarkruntime/resources/chat/completions.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,16 @@ def with_raw_response(self) -> CompletionsWithRawResponse:
4040
def with_streaming_response(self) -> CompletionsWithStreamingResponse:
4141
return CompletionsWithStreamingResponse(self)
4242

43+
def encrypt(self, model: str, messages: Iterable[ChatCompletionMessageParam], extra_headers: Headers):
44+
client = self._client._get_endpoint_certificate(model)
45+
self._crypto_key, self._crypto_nonce, session_token = client.generate_ecies_key_pair()
46+
extra_headers['X-Session-Token'] = session_token
47+
for message in messages:
48+
if message.get("content", None) is not None:
49+
message["content"] = client.encrypt_string_with_key(self._crypto_key,
50+
self._crypto_nonce,
51+
message.get("content"))
52+
4353
@with_sts_token
4454
def create(
4555
self,
@@ -68,7 +78,11 @@ def create(
6878
extra_query: Query | None = None,
6979
extra_body: Body | None = None,
7080
timeout: float | httpx.Timeout | None = None,
81+
is_encrypt: bool | None = None,
7182
) -> ChatCompletion | Stream[ChatCompletionChunk]:
83+
if is_encrypt:
84+
self.encrypt(model, messages, extra_headers)
85+
7286
return self._post(
7387
"/chat/completions",
7488
body={

0 commit comments

Comments
 (0)