feat: anthropic process
This commit is contained in:
parent
87cd0f780f
commit
ad329e659a
84
main.py
84
main.py
|
@ -27,9 +27,11 @@ import re
|
||||||
from langid.langid import LanguageIdentifier
|
from langid.langid import LanguageIdentifier
|
||||||
from langid.langid import model as modellangid
|
from langid.langid import model as modellangid
|
||||||
import time
|
import time
|
||||||
model="Modelo_embedding_Mexico_Puebla/all-mpnet-base-v2/model"
|
from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPT
|
||||||
|
import json
|
||||||
|
model="Modelo_embedding_Mexico_Puebla/paraphrase-multilingual-mpnet-base-v2/model"
|
||||||
entrenamiento="V1.3"
|
entrenamiento="V1.3"
|
||||||
|
keyanthropic=""
|
||||||
|
|
||||||
|
|
||||||
class CustomEmbedding(Embeddings, BaseModel,):
|
class CustomEmbedding(Embeddings, BaseModel,):
|
||||||
|
@ -199,7 +201,83 @@ def calculate_api(response: Response):
|
||||||
id.append(i[0])
|
id.append(i[0])
|
||||||
return {"ids": id,"DC":dis,"modelo":versionL}
|
return {"ids": id,"DC":dis,"modelo":versionL}
|
||||||
|
|
||||||
|
@app.post("/angela-api-claude/")
|
||||||
|
def calculate_api_claude(response: Response):
|
||||||
|
anthropic = Anthropic(api_key=keyanthropic)
|
||||||
|
query = response.query
|
||||||
|
try:
|
||||||
|
filtred = response.filtred
|
||||||
|
except:
|
||||||
|
filtred = -9.0
|
||||||
|
|
||||||
|
AllData=FinderDbs(query,[db2,db],filtred)
|
||||||
|
versionL="_".join([model,entrenamiento])
|
||||||
|
if AllData:
|
||||||
|
AllData = list(AllData)
|
||||||
|
dis=[]
|
||||||
|
id=[]
|
||||||
|
for k,i in enumerate(AllData[0].items()):
|
||||||
|
dis.append(str(i[1]['d']))
|
||||||
|
id.append(i[0])
|
||||||
|
if len(id)<1:
|
||||||
|
return {"text": {"completion": "No tengo información sobre este tema",
|
||||||
|
"model": "claude-2.1",
|
||||||
|
"stop_reason": "stop_sequence",
|
||||||
|
"type": "completion",
|
||||||
|
"id": "1",
|
||||||
|
"stop": "\n\nHuman:",
|
||||||
|
"log_id": "1"
|
||||||
|
},"text2": {
|
||||||
|
"completion":"No tengo información sobre este tema",
|
||||||
|
"model": "claude-2.1",
|
||||||
|
"stop_reason": "stop_sequence",
|
||||||
|
"type": "completion",
|
||||||
|
"id": "1",
|
||||||
|
"stop": "\n\nHuman:",
|
||||||
|
"log_id": "1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pathsqlite="/opt/web2py/applications/MotorAngela/databases/storage.sqlite"
|
||||||
|
con = sqlite3.connect(pathsqlite)
|
||||||
|
copies_df = pd.read_sql_query("SELECT * from copies WHERE intentionality IS NOT NULL", con)
|
||||||
|
copie = copies_df[copies_df["id"]==id[0]]["copy_message"].values[0]
|
||||||
|
promptF=f"""{HUMAN_PROMPT} Tengo un contexto por favor generame un resumen, el resumen deben ser con lenguaje amable para un publico mexicano y como si fuera una conversacion con la persona.
|
||||||
|
"""
|
||||||
|
promptF3=promptF+f"""
|
||||||
|
<contexto>%s</contexto>
|
||||||
|
{AI_PROMPT}<resumen>"""%(copie)
|
||||||
|
completion = anthropic.completions.create(
|
||||||
|
model="claude-2",
|
||||||
|
max_tokens_to_sample=600,
|
||||||
|
prompt=promptF3,
|
||||||
|
)
|
||||||
|
|
||||||
|
pregunta=query
|
||||||
|
promptFv2=f"""Tu eres un asistente de IA en chatbot llamado Angela, como asistente tu labor es ayudar a los usuarios de la pagina web de la alcaldia de puebla respondiendo sus preguntas.
|
||||||
|
Aqui te dare las reglas que debes seguir durante la conversacion:
|
||||||
|
<reglas>
|
||||||
|
- Siempre te mantendras en el personaje Angela.
|
||||||
|
- Si no estas seguro de la respuesta basada en el contexto responde el suigiente texto: "Lo siento, podrias formular la pregunta de nuevo es que no entendi tu pregunta por que soy un sistema que esta en mejora en este momento".
|
||||||
|
- No menciones el contexto si la pregunta no puede ser contestada con el.
|
||||||
|
- Siempres responderas de manera amable pero formal.
|
||||||
|
</reglas>
|
||||||
|
<contexto>
|
||||||
|
%s
|
||||||
|
</contexto>
|
||||||
|
{HUMAN_PROMPT} Tengo la siguiente pregunta entre la etiqueta <pregunta></pregunta> y basandote en el contexto que esta en la etiqueta <contexto></contexto> responde la pregunta entre la etiqueta <respuesta></respuesta>:
|
||||||
|
<pregunta>
|
||||||
|
%s
|
||||||
|
</pregunta>
|
||||||
|
"""%(copie,pregunta)
|
||||||
|
|
||||||
|
promptF3v2=promptFv2+f"""
|
||||||
|
{AI_PROMPT}<respuesta>"""
|
||||||
|
completionv2 = anthropic.completions.create(
|
||||||
|
model="claude-2.1",
|
||||||
|
max_tokens_to_sample=600,
|
||||||
|
prompt=promptF3v2,
|
||||||
|
)
|
||||||
|
return {"text":completion,"text2":completionv2}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue