2
2
from typing import Type , get_args , get_origin , Union , List
3
3
import json
4
4
import openai
5
+ import uuid
5
6
from enum import Enum
6
7
7
8
@@ -11,7 +12,12 @@ def convertanything(
11
12
server = "https://api.openai.com" ,
12
13
api_key = None ,
13
14
llm = "gpt-3.5-turbo-16k" ,
15
+ ** kwargs ,
14
16
):
17
+ if server .endswith ("/" ):
18
+ server = server [:- 1 ]
19
+ if server .endswith ("/v1" ):
20
+ server = server [:- 3 ]
15
21
input_string = str (input_string )
16
22
openai .base_url = f"{ server } /v1/"
17
23
openai .api_key = api_key if api_key else server
@@ -38,13 +44,21 @@ def convertanything(
38
44
JSON Structured Output:
39
45
"""
40
46
response = ""
47
+ messages = [{"role" : "system" , "content" : prompt }]
48
+ if "prompt_name" in kwargs :
49
+ messages [0 ]["prompt_name" ] = kwargs ["prompt_name" ]
50
+ if "prompt_category" not in kwargs :
51
+ messages [0 ]["prompt_category" ] = "Default"
52
+ else :
53
+ messages [0 ]["prompt_category" ] = kwargs ["prompt_category" ]
41
54
completion = openai .chat .completions .create (
42
55
model = llm ,
43
- messages = [{ "role" : "user" , "content" : prompt }] ,
56
+ messages = messages ,
44
57
temperature = 0.5 ,
45
58
max_tokens = 4096 ,
46
59
top_p = 0.95 ,
47
60
stream = False ,
61
+ user = str (uuid .uuid4 ()),
48
62
)
49
63
response = completion .choices [0 ].message .content
50
64
if "```json" in response :
@@ -78,13 +92,15 @@ def convert_list_of_dicts(
78
92
server = "https://api.openai.com" ,
79
93
api_key = None ,
80
94
llm = "gpt-3.5-turbo-16k" ,
95
+ ** kwargs ,
81
96
):
82
97
converted_data = convertanything (
83
98
input_string = json .dumps (data [0 ]),
84
99
model = model ,
85
100
server = server ,
86
101
api_key = api_key ,
87
102
llm = llm ,
103
+ ** kwargs ,
88
104
)
89
105
mapped_list = remap_fields (converted_data = converted_data .model_dump (), data = data )
90
106
return mapped_list
0 commit comments