ai chat init
This commit is contained in:
25
backend/ai/langchain_client.py
Normal file
25
backend/ai/langchain_client.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from langchain.schema import HumanMessage
|
||||
|
||||
from langchain_core.callbacks import AsyncCallbackHandler
|
||||
from langchain_community.chat_models import ChatOpenAI
|
||||
|
||||
|
||||
class MyHandler(AsyncCallbackHandler):
|
||||
def __init__(self, send_func):
|
||||
super().__init__()
|
||||
self.send_func = send_func
|
||||
|
||||
async def on_llm_new_token(self, token: str, **kwargs):
|
||||
await self.send_func(token)
|
||||
|
||||
async def get_ai_reply_stream(message: str, send_func, api_key, api_base, model_name):
|
||||
# 实例化时就带回调
|
||||
chat = ChatOpenAI(
|
||||
openai_api_key=api_key,
|
||||
openai_api_base=api_base,
|
||||
model_name=model_name,
|
||||
temperature=0.7,
|
||||
streaming=True,
|
||||
callbacks=[MyHandler(send_func)]
|
||||
)
|
||||
await chat.ainvoke([HumanMessage(content=message)])
|
||||
Reference in New Issue
Block a user