22from collections .abc import AsyncIterable
33from logging import getLogger
44
5- from langchain .prompts import ChatPromptTemplate , HumanMessagePromptTemplate
6- from langchain_core .messages import HumanMessage , SystemMessage
7- from langchain_openai import AzureChatOpenAI
5+ from openai import AzureOpenAI
86
97from backend .settings .azure_openai import Settings
108
@@ -15,40 +13,39 @@ class Client:
1513 def __init__ (self , settings : Settings ) -> None :
1614 self .settings = settings
1715
18- def get_client (self ) -> AzureChatOpenAI :
19- return AzureChatOpenAI (
16+ def get_client (self ) -> AzureOpenAI :
17+ return AzureOpenAI (
2018 api_key = self .settings .azure_openai_api_key ,
2119 api_version = self .settings .azure_openai_api_version ,
2220 azure_endpoint = self .settings .azure_openai_endpoint ,
23- azure_deployment = self .settings .azure_openai_gpt_model ,
2421 )
2522
2623 def create_chat_completions (
2724 self ,
2825 content : str ,
2926 ) -> str :
30- response = self .get_client ().invoke (
31- [
32- HumanMessage (
33- content = content ,
34- ) ,
35- ]
27+ response = self .get_client ().chat . completions . create (
28+ model = self . settings . azure_openai_gpt_model ,
29+ messages = [
30+ { "role" : "user" , "content" : content } ,
31+ ] ,
32+ stream = False ,
3633 )
3734 logger .info (response )
38- return response .content
35+ return response .choices [ 0 ]. message . content
3936
4037 async def create_chat_completions_stream (
4138 self ,
4239 content : str ,
4340 ) -> AsyncIterable [str ]:
44- llm = self .get_client ()
45- messages = [ HumanMessagePromptTemplate . from_template ( template = "{message}" )]
46- prompt = ChatPromptTemplate . from_messages ( messages )
47- chain = prompt | llm
48- res = chain . astream ({ "message" : content })
49- async for msg in res :
50- logger . info ( msg )
51- yield msg . content
41+ _ = self .get_client (). chat . completions . create (
42+ model = self . settings . azure_openai_gpt_model ,
43+ messages = [
44+ { "role" : "user" , "content" : content },
45+ ],
46+ stream = True ,
47+ )
48+ assert False , "Yet to be implemented."
5249
5350 def create_chat_completions_with_vision (
5451 self ,
@@ -58,24 +55,19 @@ def create_chat_completions_with_vision(
5855 ) -> str :
5956 encoded_image = b64encode (image ).decode ("ascii" )
6057
61- response = self .get_client ().invoke (
62- [
63- SystemMessage (
64- content = system_prompt ,
65- ),
66- HumanMessage (
67- content = [
68- {
69- "type" : "text" ,
70- "text" : user_prompt ,
71- },
72- {
73- "type" : "image_url" ,
74- "image_url" : {"url" : f"data:image/jpeg;base64,{ encoded_image } " },
75- },
58+ response = self .get_client ().chat .completions .create (
59+ model = self .settings .azure_openai_gpt_model ,
60+ messages = [
61+ {"role" : "system" , "content" : system_prompt },
62+ {
63+ "role" : "user" ,
64+ "content" : [
65+ {"type" : "text" , "text" : user_prompt },
66+ {"type" : "image_url" , "image_url" : {"url" : f"data:image/jpeg;base64,{ encoded_image } " }},
7667 ],
77- ),
78- ]
68+ },
69+ ],
70+ stream = False ,
7971 )
8072 logger .info (response )
81- return response .content
73+ return response .choices [ 0 ]. message . content
0 commit comments