feat: ichat 修改LLM 的接口

This commit is contained in:
zty 2025-04-27 09:21:19 +08:00
parent 8f6a6eb973
commit c0277ad9a6
4 changed files with 12 additions and 18 deletions

View File

@ -1,12 +1,8 @@
from django.urls import path
from apps.ichat.views import QueryLLMview
from django.urls import path, include
from rest_framework.routers import DefaultRouter
API_BASE_URL = 'api/hrm/'
HTML_BASE_URL = 'dhtml/hrm/'
router = DefaultRouter()
router.register('llm/query/', QueryLLMview, basename='llm_query')
API_BASE_URL = 'api/llm/ichat/'
urlpatterns = [
path(API_BASE_URL, include(router.urls)),
path(API_BASE_URL + 'query/', QueryLLMview.as_view(), name='llm_query'),
]

View File

@ -1,23 +1,20 @@
import requests
from pydantic import Field
from langchain_core.language_models import LLM
from langchain_core.outputs import LLMResult, Generation
from langchain_experimental.sql import SQLDatabaseChain
from langchain_community.utilities import SQLDatabase
from server.conf import DATABASES
from serializers import CustomLLMrequestSerializer
from apps.ichat.serializers import CustomLLMrequestSerializer
from rest_framework.views import APIView
from urllib.parse import quote_plus
# fastapi
from fastapi import FastAPI
from pydantic import BaseModel
from rest_framework.response import Response
db_conf = DATABASES['default']
# 密码需要 URL 编码(因为有特殊字符如 @
password_encodeed = quote_plus(db_conf['password'])
password_encodeed = quote_plus(db_conf['PASSWORD'])
db = SQLDatabase.from_uri(f"postgresql+psycopg2://{db_conf['user']}:{password_encodeed}@{db_conf['host']}/{db_conf['name']}", include_tables=["enm_mpoint", "enm_mpointstat"])
db = SQLDatabase.from_uri(f"postgresql+psycopg2://{db_conf['USER']}:{password_encodeed}@{db_conf['HOST']}/{db_conf['NAME']}", include_tables=["enm_mpoint", "enm_mpointstat"])
# model_url = "http://14.22.88.72:11025/v1/chat/completions"
model_url = "http://139.159.180.64:11434/v1/chat/completions"
@ -74,6 +71,6 @@ class QueryLLMview(APIView):
serializer.is_valid(raise_exception=True)
prompt = serializer.validated_data['prompt']
llm = CustomLLM(model_url=model_url)
chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)
chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
result = chain.invoke(prompt)
return result
return Response({"result": result})

View File

@ -126,7 +126,7 @@ class WMaterial(CommonBDModel):
@classmethod
def mat_in_qs(cls, mtask: Mtask, qs=None):
"""
可用于该子任务的queryset
TN: 可用于该子任务的queryset
"""
if qs is None:
qs = cls.objects

View File

@ -44,6 +44,7 @@ urlpatterns = [
# api
path('', include('apps.auth1.urls')),
path('', include('apps.ichat.urls')),
path('', include('apps.system.urls')),
path('', include('apps.monitor.urls')),
path('', include('apps.wf.urls')),