diff --git a/apps/ichat/urls.py b/apps/ichat/urls.py index 581a7a6f..3fdc93c1 100644 --- a/apps/ichat/urls.py +++ b/apps/ichat/urls.py @@ -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'), ] \ No newline at end of file diff --git a/apps/ichat/views.py b/apps/ichat/views.py index 25cb5d80..61ed583e 100644 --- a/apps/ichat/views.py +++ b/apps/ichat/views.py @@ -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 \ No newline at end of file + return Response({"result": result}) \ No newline at end of file diff --git a/apps/wpm/models.py b/apps/wpm/models.py index 77d68057..c63d7c4f 100644 --- a/apps/wpm/models.py +++ b/apps/wpm/models.py @@ -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 diff --git a/server/urls.py b/server/urls.py index 619aa2a2..0eb2954c 100755 --- a/server/urls.py +++ b/server/urls.py @@ -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')),